/
dimkqa
/
RabbitMQ-Learning
Обзор
Документация
Войти
/
dimkqa
/
RabbitMQ-Learning
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
RabbitMQ.SimulationTasks.Console.Producer/Program.cs
43 строки
2 KB
shamrik-dmitriy
+ Добавил простой пример имитирующий длительную работу.
15 мар 2025, 13:30
15 мар 2025, 13:30
459adfd
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using RabbitMQ.Client; namespace RabbitMQ.Console.Producer { class Program { static async Task Main(string[] args) { var cancellationToken = new CancellationTokenSource().Token; var connectionFactory = new ConnectionFactory() { HostName = "localhost" }; using var connection = await connectionFactory.CreateConnectionAsync(cancellationToken); using var channel = await connection.CreateChannelAsync(cancellationToken: cancellationToken); await channel.QueueDeclareAsync("QueueOfSimulationTasks", false, false, false, null, cancellationToken: cancellationToken); var producer = new Producer(channel); var j = 0; while (true) { var stringBuilder = new StringBuilder($"#{j} Task"); var rand = new Random().Next(3, 10); System.Console.WriteLine($"RND: {rand}"); for (var i = 0; i < rand; i++) stringBuilder.Append('.'); System.Console.WriteLine($"Start sending message: {stringBuilder}"); await producer.Send(stringBuilder.ToString(), cancellationToken); Task.Delay(1000, cancellationToken).Wait(cancellationToken); System.Console.WriteLine($"Finish sending message: {stringBuilder}"); j++; } System.Console.ReadLine(); } } }