增加备注
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
c940976f7f
commit
8eecabb897
|
@ -0,0 +1,31 @@
|
|||
using MassTransit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static IRaCIS.Core.Application.Service.TestService;
|
||||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
/// <summary>
|
||||
/// meditor send 的时候,请求流会先到消费者,返回后才会执行后续代码
|
||||
/// publish 请求流不会先到消费者,发布后,直接执行后续代码
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="_userRepository"></param>
|
||||
public class MasstransitHangfireTestConsumer(IRepository<User> _userRepository) : IConsumer<MasstransitHangfireTest>
|
||||
{
|
||||
public async Task Consume(ConsumeContext<MasstransitHangfireTest> context)
|
||||
{
|
||||
|
||||
Console.WriteLine(_userRepository._dbContext.GetHashCode());
|
||||
Console.WriteLine("Now is " + DateTime.Now.ToString());
|
||||
Console.WriteLine($"MassTransit.Consumer :{context.Message.value}");
|
||||
|
||||
|
||||
await context.RespondAsync<IResponseOutput>(ResponseOutput.Ok());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,8 @@ public class EventStoreRecordView
|
|||
|
||||
public string EventData { get; set; }
|
||||
|
||||
public string EventTypeName { get; set; }
|
||||
|
||||
public EventStateEnum EventState { get; set; }
|
||||
|
||||
public string EventType { get; set; }
|
||||
|
@ -33,7 +35,7 @@ public class EventStoreRecordQuery : PageInput
|
|||
|
||||
public EventStateEnum? EventState { get; set; }
|
||||
|
||||
public string? EventType { get; set; }
|
||||
public string? EventTypeName { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,12 +22,16 @@ namespace IRaCIS.Core.Application.Service;
|
|||
[ApiExplorerSettings(GroupName = "Common")]
|
||||
public class EventStoreRecordService(IRepository<EventStoreRecord> _eventStoreRecordRepository, IMediator _mediator,IPublishEndpoint _publishEndpoint) : BaseService
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 邮件事件消息列表
|
||||
/// </summary>
|
||||
/// <param name="inQuery"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<EventStoreRecordView>> GetEventStoreRecordList(EventStoreRecordQuery inQuery)
|
||||
{
|
||||
|
||||
var eventStoreRecordQueryable = _eventStoreRecordRepository
|
||||
var eventStoreRecordQueryable = _eventStoreRecordRepository.WhereIf(inQuery.EventTypeName.IsNotNullOrEmpty(),t=>t.EventTypeName.Contains(inQuery.EventTypeName))
|
||||
.ProjectTo<EventStoreRecordView>(_mapper.ConfigurationProvider);
|
||||
|
||||
var pageList = await eventStoreRecordQueryable.ToPagedListAsync(inQuery);
|
||||
|
|
|
@ -153,7 +153,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
await _testLengthRepository.AddAsync(new TestLength() { Name = "xxxx" });
|
||||
|
||||
// The consumer method will inject the repository and add 3 pieces of data, but the savechanges method of the repository will not be called
|
||||
await _mediatorScoped.Send(new AddSubjectTriggerCommand { SubjectId = Guid.Empty });
|
||||
await _mediatorScoped.Publish(new AddSubjectTriggerCommand { SubjectId = Guid.Empty });
|
||||
|
||||
await _mediator.Send(new AddSubjectTriggerCommand2 { SubjectId = Guid.Empty });
|
||||
|
||||
|
@ -168,16 +168,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
public string value { get; set; }
|
||||
}
|
||||
|
||||
public class MasstransitHangfireTestConsumer : IConsumer<MasstransitHangfireTest>
|
||||
{
|
||||
public Task Consume(ConsumeContext<MasstransitHangfireTest> context)
|
||||
{
|
||||
Console.WriteLine("Now is " + DateTime.Now.ToString());
|
||||
Console.WriteLine($"MassTransit.Consumer1 :{context.Message.value}");
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
public async Task<IResponseOutput> TestMasstransitHangfire([FromServices] IMessageScheduler _scheduler)
|
||||
public async Task<IResponseOutput> TestMasstransitHangfireOrRequest([FromServices] IMessageScheduler _scheduler,
|
||||
[FromServices] IRepository<TestLength> _testLengthRepository,
|
||||
[FromServices] IRequestClient<MasstransitHangfireTest> _requestClient)
|
||||
{
|
||||
var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US;
|
||||
|
||||
|
@ -190,6 +183,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
//await _scheduler.SchedulePublish(DateTime.Now.AddSeconds(10), new MasstransitHangfireTest() { value = "message at " + DateTime.Now.ToString() });
|
||||
|
||||
Console.WriteLine(_testLengthRepository._dbContext.GetHashCode());
|
||||
await _requestClient.GetResponse<IResponseOutput>(new MasstransitHangfireTest() { value = "message at " + DateTime.Now.ToString() });
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ namespace IRaCIS.Core.Infra.EFCore.Interceptor
|
|||
|
||||
if (domainEvent.IsScheduleEvent)
|
||||
{
|
||||
//延迟调度的消息,比如1h后再消费
|
||||
await _scheduler.SchedulePublish(DateTime.Now.AddSeconds(domainEvent.DelaySeconds), (object)domainEvent);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue