using RabbitMQ.Client;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace .RabbitMQWorker
{
class Program
{
static string hostName = string.Empty;
static string userName = string.Empty;
static string password = string.Empty;
static string queueName = string.Empty;
static void Main(string[] args)
{
hostName = ConfigurationManager.AppSettings.Get("HostName");
userName = ConfigurationManager.AppSettings.Get("UserName");
password = ConfigurationManager.AppSettings.Get("Password");
queueName = ConfigurationManager.AppSettings.Get("QueueName");
var factory = new ConnectionFactory() { HostName = hostName, UserName = userName, Password = password };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: queueName,
durable: true,
exclusive: false,
autoDelete: false,
arguments: null);
Console.WriteLine(" Press message to publish.input exit to stop.");
string message = Console.ReadLine();
while (message.ToLower() != "exit")
{
var body = Encoding.UTF8.GetBytes(message);
var properties = channel.CreateBasicProperties();
properties.Persistent = true;
channel.BasicPublish(exchange: "",
routingKey: queueName,
basicProperties: properties,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
message = Console.ReadLine();
}
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}