29 lines
1006 B
C#
29 lines
1006 B
C#
using MassTransit;
|
|
using Tiku.Application.Jobs;
|
|
using Tiku.Application.Security;
|
|
using Tiku.Contracts;
|
|
|
|
namespace Tiku.Infrastructure.Messaging;
|
|
|
|
[ConsumerAuthorizationMetadata(
|
|
"tenant", "dynamic-job-module", CapabilityOperation.Write, "background_job.execute",
|
|
RequiresSystemScope = true)]
|
|
internal sealed class BackgroundJobRequestedConsumer(
|
|
IBackgroundJobService backgroundJobService,
|
|
ITenantContextInitializer tenantContextInitializer) : IConsumer<BackgroundJobRequestedV1>
|
|
{
|
|
public async Task Consume(ConsumeContext<BackgroundJobRequestedV1> context)
|
|
{
|
|
var message = context.Message;
|
|
tenantContextInitializer.InitializeSystem(
|
|
message.TenantId,
|
|
$"RabbitMQ background job {message.JobType}");
|
|
await backgroundJobService.ProcessRequestedAsync(
|
|
message.JobId,
|
|
message.TenantId,
|
|
message.JobType,
|
|
$"rabbitmq:{Environment.MachineName}",
|
|
context.CancellationToken);
|
|
}
|
|
}
|