Guest User

Untitled

a guest
Jan 1st, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. require 'bunny'
  2. module AMQP
  3. # Will make connection to the amqp client and create feed job which will
  4. # process data accordingly
  5. class Listner < ApplicationInteraction
  6. object :session, default: nil, class: Bunny::Session
  7. set_callback :validate, :after, -> { set_connection }
  8.  
  9. def execute
  10. session.close if session.present?
  11. supervise_amqp_access do
  12. @retries ||= 0
  13. puts "$amqp_conn.inspect"
  14. $amqp_conn.start
  15. ch = $amqp_conn.channel
  16. queue = ch.queue('', exclusive: true)
  17. ch.queue_bind(queue.name, 'unifiedfeed', routing_key: '#')
  18. queue.subscribe(manual_ack: true, block: true) do |delivery_info, properties, payload|
  19. puts "#{delivery_info.inspect}"
  20. end
  21. put "outside execute ===================="
  22. $amqp_conn
  23. end
  24. end
  25.  
  26. private
  27.  
  28. def set_connection
  29. STDOUT.sync = true
  30. $amqp_conn = Bunny.new(
  31. host: 'mq.betradar.com',
  32. vhost: '/unifiedfeed/21951',
  33. port: 5671,
  34. user: api_key,
  35. password: api_key,
  36. ssl: true,
  37. verify_peer: false,
  38. verify_peer_name: false,
  39. allow_self_signed: true
  40. )
  41. end
  42.  
  43. def api_key
  44. @api_key ||= Figaro.env.betradar_api_key
  45. end
  46.  
  47. def supervise_amqp_access
  48. yield
  49. rescue ::StandardError => exception
  50. # AvantageSetting.suspend_betting
  51. $amqp_conn.close
  52. retry if (@retries += 1) < 3
  53. custom_error_logger(exception)
  54. end
  55.  
  56. def custom_error_logger(exception)
  57. Honeybadger.notify(
  58. "[AMQP Listner Error] : [#{exception.class}] : [#{exception.cause}]",
  59. class_name: exception.class
  60. )
  61. AmqpClientErrorMailer.client_error(
  62. Figaro.env.developers_mail, exception.class.name, exception.cause,
  63. Time.zone.now.to_s
  64. ).deliver_later
  65. end
  66. end
  67. end
Add Comment
Please, Sign In to add comment