Guest User

Untitled

a guest
Sep 25th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. module Worker
  2. module App
  3. module Cli
  4.  
  5. class Development < Thor
  6. namespace "worker:dev"
  7. @conf = {
  8. :host => "localhost",
  9. :user => "guest",
  10. :password => "guest",
  11. :vhost => "/",
  12. :logging => true,
  13. :port => 5672
  14. }
  15.  
  16. desc "start_consumer", "start the test consumer"
  17. def start_consumer
  18.  
  19. AMQP.start(@conf) do |connection|
  20. channel = AMQP::Channel.new(connection)
  21.  
  22. requests_queue = channel.queue("leads")
  23. requests_queue.purge
  24.  
  25. Signal.trap("INT") do
  26. connection.close do
  27. EM.stop{exit}
  28. end
  29. end
  30.  
  31. requests_queue.subscribe(:ack => true) do |header, body|
  32. url_search = safe_json_decode(body)
  33.  
  34. puts "we have a message at #{Time.now} with search terms of #{url_search.inspect}"
  35.  
  36. doc = open(url_search["search_url"])
  37.  
  38. parser = Parser.new(nil, doc)
  39.  
  40. parser.find_potential_leads do |lead|
  41. puts "lead = #{lead.company}"
  42.  
  43. json = lead.to_json(:include => [:emails, :contacts])
  44.  
  45. AMQP::Exchange.default.publish(
  46. json,
  47. :routing_key => header.reply_to,
  48. :correlation_id => header.correlation_id
  49. )
  50. end
  51. end
  52.  
  53. puts " [x] Awaiting RPC requests"
  54. end
  55. end
Add Comment
Please, Sign In to add comment