Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. private void InitializeAgent() {
  2. var agentFactory = new ConnectionFactory() { HostName = "localhost" };
  3. agentConnection = agentFactory.CreateConnection();
  4. agentChannel = agentConnection.CreateModel();
  5. var ok = agentChannel.QueueDeclare(GetType().Name, true, false, false, null);
  6. consumer = new QueueingBasicConsumer(agentChannel);
  7. agentChannel.BasicConsume(GetType().Name, false, consumer);
  8. }
  9.  
  10. public void DequeueMessages() {
  11. ThreadPool.SetMaxThreads(200, 200);
  12. ThreadPool.SetMinThreads(200, 200);
  13. var ea = consumer.Queue.Dequeue();
  14. ThreadPool.QueueUserWorkItem(ProcessWorkInThread, ea);
  15. }
  16.  
  17. public void AgentTask() {
  18. var instance = factory.GetInstance(threadItem);
  19.  
  20. while (true)
  21. DequeueMessages();
  22. }
  23.  
  24. private void ProcessWorkInThread(object state) {
  25. var ea = state as BasicDeliverEventArgs;
  26.  
  27. var message = Encoding.UTF8.GetString(ea.Body);
  28.  
  29. var settings = new JsonSerializerSettings();
  30. settings.ContractResolver = new DefaultContractResolver() { DefaultMembersSearchFlags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public };
  31. var item = JsonConvert.DeserializeObject<TEntity>(message, settings);
  32.  
  33. Thread.Sleep(10000) //simulate work
  34. agentChannel.BasicAck(ea.DeliveryTag, false);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement