50 lines
1.9 KiB
C#
50 lines
1.9 KiB
C#
using JiShe.CollectBus.Common.Extensions.DependencyInjections;
|
|
using MassTransit;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace JiShe.CollectBus.RabbitMQ.Senders
|
|
{
|
|
public class MqSender : IMqSender
|
|
{
|
|
private readonly ISendEndpointProvider _sendEndpointProvider;
|
|
private readonly IConfiguration _configuration;
|
|
|
|
public MqSender(ISendEndpointProvider sendEndpointProvider, IConfiguration configuration)
|
|
{
|
|
_sendEndpointProvider = sendEndpointProvider;
|
|
_configuration = configuration;
|
|
}
|
|
|
|
public async Task SendToPushAsync<T>(T message, CancellationToken cancellationToken = default) where T : class
|
|
{
|
|
var queueName = _configuration["MQ:Queue:Push"];
|
|
await SendAsync(queueName, message, cancellationToken);
|
|
}
|
|
|
|
public async Task SendToPushAsync(object message, CancellationToken cancellationToken = default)
|
|
{
|
|
var queueName = _configuration["MQ:Queue:Push"];
|
|
await SendAsync(queueName, message, cancellationToken);
|
|
}
|
|
|
|
public async Task SendToReportAsync<T>(T message, CancellationToken cancellationToken = default) where T : class
|
|
{
|
|
var queueName = _configuration["MQ:Queue:Report"];
|
|
await SendAsync(queueName, message, cancellationToken);
|
|
}
|
|
|
|
public async Task SendToReportAsync(object message, CancellationToken cancellationToken = default)
|
|
{
|
|
var queueName = _configuration["MQ:Queue:Report"];
|
|
await SendAsync(queueName, message, cancellationToken);
|
|
}
|
|
|
|
|
|
public async Task SendAsync(string queueKey,object message, CancellationToken cancellationToken = default)
|
|
{
|
|
var endpoint = await _sendEndpointProvider.GetSendEndpoint(new Uri($"queue:{queueKey}"));
|
|
await endpoint.Send(message, cancellationToken);
|
|
}
|
|
}
|
|
}
|