Masstransit Jobconsumer 更改队列名称 Job、JobAttempt 和 JobType
Masstransit Jobconsumer change queue names Job, JobAttempt and JobType
我正在使用 masstransit、rabbitmq 和 jobconsumers 构建概念验证。这非常好,我正在取得进步。但是有一件事我无法解决,那就是更改队列 Job、JobAttempt 和 JobType 的队列名称。我找不到注入端点名称格式化程序的正确位置。我们在 rabbitmq 集群上 运行 多个应用程序,不同解决方案的作业不应混合。所以我的问题是在哪里以及如何更改队列名称?
我试过:
services.AddMassTransit(mt =\>
mt.AddDelayedMessageScheduler();
mt.AddConsumer\<LongJobConsumer\>(cfg =\>
{
cfg.Options\<JobOptions\<LongJobConsumer\>\>(options =\> options
.SetJobTimeout(TimeSpan.FromMinutes(15))
.SetConcurrentJobLimit(1));
});
mt.SetEndpointNameFormatter(new DefaultEndpointNameFormatter("MyQueue", false));
mt.UsingRabbitMq((context, cfg) =>
{
cfg.UseDelayedMessageScheduler();
cfg.Host(rabbitMqConfig.Host, host =>
{
host.Username(rabbitMqConfig.Username);
host.Password(rabbitMqConfig.Password);
host.Heartbeat(rabbitMqConfig.Heartbeat);
});
cfg.UseGlobalRetryPolicy();
cfg.UseInMemoryOutbox();
ServiceInstanceOptions options = new ServiceInstanceOptions()
.EnableJobServiceEndpoints();
cfg.ServiceInstance(options, instance =>
{
instance.ConfigureJobServiceEndpoints();
instance.ConfigureEndpoints(context, new DefaultEndpointNameFormatter("MyQueue", false));
});
您可以在配置作业服务端点时配置端点名称:
instance.ConfigureJobServiceEndpoints(x =>
{
x.JobServiceStateEndpointName = "job-type";
x.JobServiceJobAttemptStateEndpointName = "job-attempt";
x.JobServiceJobStateEndpointName = "job";
});
我正在使用 masstransit、rabbitmq 和 jobconsumers 构建概念验证。这非常好,我正在取得进步。但是有一件事我无法解决,那就是更改队列 Job、JobAttempt 和 JobType 的队列名称。我找不到注入端点名称格式化程序的正确位置。我们在 rabbitmq 集群上 运行 多个应用程序,不同解决方案的作业不应混合。所以我的问题是在哪里以及如何更改队列名称?
我试过:
services.AddMassTransit(mt =\>
mt.AddDelayedMessageScheduler();
mt.AddConsumer\<LongJobConsumer\>(cfg =\>
{
cfg.Options\<JobOptions\<LongJobConsumer\>\>(options =\> options
.SetJobTimeout(TimeSpan.FromMinutes(15))
.SetConcurrentJobLimit(1));
});
mt.SetEndpointNameFormatter(new DefaultEndpointNameFormatter("MyQueue", false));
mt.UsingRabbitMq((context, cfg) =>
{
cfg.UseDelayedMessageScheduler();
cfg.Host(rabbitMqConfig.Host, host =>
{
host.Username(rabbitMqConfig.Username);
host.Password(rabbitMqConfig.Password);
host.Heartbeat(rabbitMqConfig.Heartbeat);
});
cfg.UseGlobalRetryPolicy();
cfg.UseInMemoryOutbox();
ServiceInstanceOptions options = new ServiceInstanceOptions()
.EnableJobServiceEndpoints();
cfg.ServiceInstance(options, instance =>
{
instance.ConfigureJobServiceEndpoints();
instance.ConfigureEndpoints(context, new DefaultEndpointNameFormatter("MyQueue", false));
});
您可以在配置作业服务端点时配置端点名称:
instance.ConfigureJobServiceEndpoints(x =>
{
x.JobServiceStateEndpointName = "job-type";
x.JobServiceJobAttemptStateEndpointName = "job-attempt";
x.JobServiceJobStateEndpointName = "job";
});