masstransit 集成hangfire
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
a700658132
commit
1e99374de0
|
@ -35,6 +35,7 @@ using IRaCIS.Core.Application.MassTransit.Command;
|
|||
using IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
using DocumentFormat.OpenXml.InkML;
|
||||
using IRaCIS.Core.Domain;
|
||||
using static IRaCIS.Core.Application.Service.TestService;
|
||||
|
||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
|
||||
|
@ -163,14 +164,33 @@ builder.Services.AddMassTransit(cfg =>
|
|||
cfg.AddConsumer<AddSubjectTriggerConsumer>(); // 替换为你的消费者类
|
||||
cfg.AddConsumer<AddSubjectTriggerConsumer2>();
|
||||
|
||||
cfg.AddConsumer<MasstransitHangfireTestConsumer>();
|
||||
|
||||
|
||||
cfg.AddPublishMessageScheduler();
|
||||
//cfg.AddHangfireConsumers();
|
||||
|
||||
|
||||
|
||||
// 使用 InMemory 作为消息传递机制
|
||||
cfg.UsingInMemory((context, cfg) =>
|
||||
{
|
||||
//https://github.com/MassTransit/Sample-Hangfire/blob/master/src/Sample.Hangfire.Console/Program.cs
|
||||
cfg.UsePublishMessageScheduler();
|
||||
|
||||
//使用 Hangfire 进行消息调度
|
||||
cfg.UseHangfireScheduler();
|
||||
|
||||
// 这里可以进行额外的配置
|
||||
cfg.ConfigureEndpoints(context); // 自动配置所有消费者的端点
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
//builder.Services.AddOptions<MassTransitHostOptions>().Configure(options =>
|
||||
//{
|
||||
// options.WaitUntilStarted = true;
|
||||
//});
|
||||
#endregion
|
||||
|
||||
|
||||
|
|
|
@ -162,6 +162,27 @@ namespace IRaCIS.Core.Application.Service
|
|||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
public class MasstransitHangfireTest
|
||||
{
|
||||
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)
|
||||
{
|
||||
await _scheduler.SchedulePublish(DateTime.Now.AddSeconds(10), new MasstransitHangfireTest() { value = "message at " + DateTime.Now.ToString() });
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
public async Task<IResponseOutput> TestJson()
|
||||
{
|
||||
var model1 = new TestModel() { TestId = NewId.NextSequentialGuid(), TestName = null };
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
<PackageReference Include="EntityFrameworkCore.Exceptions.SqlServer" Version="8.1.3" />
|
||||
<PackageReference Include="MassTransit" Version="8.2.5" />
|
||||
<PackageReference Include="MassTransit.EntityFrameworkCore" Version="8.2.5" />
|
||||
<PackageReference Include="MassTransit.Hangfire" Version="8.2.5" />
|
||||
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="8.0.8" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" />
|
||||
|
|
Loading…
Reference in New Issue