Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void InitializeAgent() {
- var agentFactory = new ConnectionFactory() { HostName = "localhost" };
- agentConnection = agentFactory.CreateConnection();
- agentChannel = agentConnection.CreateModel();
- var ok = agentChannel.QueueDeclare(GetType().Name, true, false, false, null);
- consumer = new QueueingBasicConsumer(agentChannel);
- agentChannel.BasicConsume(GetType().Name, false, consumer);
- }
- public void DequeueMessages() {
- ThreadPool.SetMaxThreads(200, 200);
- ThreadPool.SetMinThreads(200, 200);
- var ea = consumer.Queue.Dequeue();
- ThreadPool.QueueUserWorkItem(ProcessWorkInThread, ea);
- }
- public void AgentTask() {
- var instance = factory.GetInstance(threadItem);
- while (true)
- DequeueMessages();
- }
- private void ProcessWorkInThread(object state) {
- var ea = state as BasicDeliverEventArgs;
- var message = Encoding.UTF8.GetString(ea.Body);
- var settings = new JsonSerializerSettings();
- settings.ContractResolver = new DefaultContractResolver() { DefaultMembersSearchFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public };
- var item = JsonConvert.DeserializeObject<TEntity>(message, settings);
- Thread.Sleep(10000) //simulate work
- agentChannel.BasicAck(ea.DeliveryTag, false);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement