24 lines
879 B
C#
24 lines
879 B
C#
using System.Text;
|
|
using JOBot.Infrastructure.Config;
|
|
using JOBot.TClient.Services;
|
|
using Microsoft.Extensions.Hosting;
|
|
using RabbitMQ.Client;
|
|
using RabbitMQ.Client.Events;
|
|
|
|
namespace JOBot.TClient.Queues;
|
|
|
|
public class AuthQueue(IChannel channel, PrepareUserService prepareUserService) : BackgroundService
|
|
{
|
|
|
|
private async Task OnDataReceivedAsync(object sender, BasicDeliverEventArgs eventArgs)
|
|
{
|
|
await prepareUserService.AuthHookReceived(Convert.ToInt64(Encoding.UTF8.GetString(eventArgs.Body.ToArray())));
|
|
}
|
|
|
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
|
{
|
|
var consumer = new AsyncEventingBasicConsumer(channel);
|
|
consumer.ReceivedAsync += OnDataReceivedAsync;
|
|
await channel.BasicConsumeAsync(RabbitQueues.AuthQueue, autoAck: true, consumer: consumer, cancellationToken: stoppingToken);
|
|
}
|
|
} |