Initial commit
This commit is contained in:
37
lib/tasks/failures.rake
Normal file
37
lib/tasks/failures.rake
Normal file
@@ -0,0 +1,37 @@
|
||||
# encoding: UTF-8
|
||||
# frozen_string_literal: true
|
||||
|
||||
namespace :failures do
|
||||
desc 'Fetch Trade Execution Errors'
|
||||
task trade_errors: :environment do
|
||||
|
||||
conn = Bunny.new AMQP::Config.connect
|
||||
conn.start
|
||||
|
||||
ch = conn.create_channel
|
||||
|
||||
q = ch.queue("peatio.trades.errors")
|
||||
puts "****** Fetching Queue Messages ******"
|
||||
count = q.message_count
|
||||
puts "****** Total Messages in queue = #{count} ******"
|
||||
errors = []
|
||||
until count == 0
|
||||
_delivery_info, _metadata, payload = q.pop
|
||||
payload = JSON.parse(payload).symbolize_keys!
|
||||
err_obj = payload.slice(:code, :message)
|
||||
if err = errors.find{|k| k[:code] == err_obj.fetch(:code)}
|
||||
err[:count] += 1
|
||||
else
|
||||
errors << {code: err_obj.fetch(:code), count: 1 }
|
||||
end
|
||||
count -= 1
|
||||
end
|
||||
|
||||
errors.each do |error|
|
||||
puts "****** Error Code: #{error[:code]} Count = #{error[:count]} ******"
|
||||
end
|
||||
puts "****** purging queue *******"
|
||||
q.purge
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user