Initial commit
This commit is contained in:
40
app/workers/daemons/upstream.rb
Normal file
40
app/workers/daemons/upstream.rb
Normal file
@@ -0,0 +1,40 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Workers
|
||||
module Daemons
|
||||
class Upstream < Base
|
||||
def run
|
||||
Engine.all.map { |e| Thread.new { process(e) } }.map(&:join)
|
||||
end
|
||||
|
||||
def process(engine)
|
||||
EM.synchrony do
|
||||
upstream = Peatio::Upstream.registry[engine.driver]
|
||||
engine.markets.each do |market|
|
||||
target = if market.data.present? && market.data['target'].present?
|
||||
market.data['target']
|
||||
else
|
||||
market.id
|
||||
end
|
||||
|
||||
configs = engine.data.merge('source' => market.id, 'amqp' => ::AMQP::Queue, 'target' => target)
|
||||
|
||||
upstream.new(configs).ws_connect
|
||||
Rails.logger.info "Upstream with driver #{engine.driver} for #{market.id} started"
|
||||
rescue StandardError => e
|
||||
report_exception(e)
|
||||
next
|
||||
end
|
||||
rescue Peatio::AdapterRegistry::NotRegisteredAdapterError => e
|
||||
report_exception(e)
|
||||
end
|
||||
end
|
||||
|
||||
def stop
|
||||
puts 'Shutting down'
|
||||
@shutdown = true
|
||||
exit(42)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user