ConnectionFactory factory = new ConnectionFactory {HostName = "localhost"};
using (IConnection connection = factory.CreateConnection())
using (IModel channel = connection.CreateModel())
{
channel.QueueDeclare("hello", false, false, false, null);
for (int i = 0; i < 100000; i++)
{
MemoryStream stream = new MemoryStream();
var user = new User
{
Id = i
};
Serializer.Serialize(stream, user);
channel.BasicPublish("", "hello", null, stream.ToArray());
}
}
मेरे पास उपरोक्त कोड है, और मैं थ्रेड सुरक्षा के बारे में उत्सुक हूं।सी # RabbitMQ क्लाइंट थ्रेड सुरक्षा
मुझे यकीन नहीं है, लेकिन मुझे लगता है कि ConnectionFactory
धागा सुरक्षित है। लेकिन मुझे यकीन नहीं है कि IConnection
धागा सुरक्षित है? क्या मुझे प्रति अनुरोध कनेक्शन बनाना चाहिए? या बल्कि एक लगातार कनेक्शन? और IChannel
के बारे में क्या?
साथ ही, क्या मुझे कनेक्शन को थ्रेडलोकल के रूप में स्टोर करना चाहिए? या क्या मुझे प्रति अनुरोध कनेक्शन बनाना चाहिए?
इस प्रश्न का मेरा उत्तर देखें http://stackoverflow.com/questions/10407760/is-there-a-performance-difference-between-pooling-connections-or-channels-in-rab/10501593#10501593 – robthewolf