Initial commit
This commit is contained in:
28
app/jobs/cron/ticker.rb
Normal file
28
app/jobs/cron/ticker.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
module Jobs
|
||||
module Cron
|
||||
class Ticker
|
||||
def self.process
|
||||
@tickers = {}
|
||||
@cache_tickers = {}
|
||||
Market.active.each do |market|
|
||||
service = TickersService[market]
|
||||
ticker = service.ticker
|
||||
@tickers[market.id] = ticker
|
||||
@cache_tickers[market.id] = format_ticker ticker
|
||||
end
|
||||
Rails.logger.info { "Publish tickers: #{@tickers}" }
|
||||
Rails.cache.write(:markets_tickers, @cache_tickers)
|
||||
::AMQP::Queue.enqueue_event('public', 'global', 'tickers', @tickers)
|
||||
sleep 5
|
||||
end
|
||||
|
||||
def self.format_ticker(ticker)
|
||||
permitted_keys = %i[low high open last volume amount
|
||||
avg_price price_change_percent]
|
||||
|
||||
{ at: ticker[:at],
|
||||
ticker: ticker }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user