Это в моем инициализаторе, который отлично работает для вытягивания всех самых низких цен и средневзвешенной цены каждые 5, 10, 20 и т. Д. . секундЯ пытаюсь использовать rufus, планируя gem от контроллера, чтобы вытащить самую низкую цену с api каждый мин.
unless defined?(Rails::Console) || File.split($0).last == 'rake'
s = Rufus::Scheduler.singleton
s.every '10m' do
Rails.logger.info "hello, it's {Time.now}"
Rails.logger.flush
Bid.all.each do |bid|
id = bid.event_id
@events = Unirest.get("https://api.seatgeek.com/2/events/#{id}?&client_id=NjQwNTEzMXwxNDgxNDkxODI1").body
if @events["stats"]
@low = @events["stats"]["lowest_price"] || 0
@avg = @events["stats"]["average_price"] || 0
BuyNowBid.create(bid_id: bid.id, lowest_price: @low , average_price: @avg)
end
end
end
end
Но когда я пытаюсь создать предложение от контроллера, а затем попытаться вытащить нижнюю и среднюю цену от API он не работает уже сидели работали над этим в течение нескольких часов в настоящее время каких-либо советы было бы высоко оценено.
def create
#@bid?
#seatgeek id
@bidd = Bid.new(event_id: params[:event_id], user_id: session[:user_id], bid: params[:bid], lowest_price: params[:lowest_price])
if session[:user_id] == current_user.id
@bidd.save
@events = Unirest.get("https://api.seatgeek.com/2/events/#{@bidd.event_id}?&client_id=NjQwNTEzMXwxNDgxNDkxODI1").body
if @events["stats"]
@low = @events["stats"]["lowest_price"] || 0
@avg = @events["stats"]["average_price"] || 0
BuyNowBid.create(bid_id: @bidd.id, lowest_price: @low , average_price: @avg)
end
Rufus::Scheduler.singleton.every '10s' do
@events = Unirest.get("https://api.seatgeek.com/2/events/#{@bidd.event_id}?&client_id=NjQwNTEzMXwxNDgxNDkxODI1").body
if @events["stats"]
@low = @events["stats"]["lowest_price"] || 0
@avg = @events["stats"]["average_price"] || 0
BuyNowBid.create(bid_id: @bidd.id, lowest_price: @low , average_price: @avg)
end
end
flash[:success] = "bid created."
redirect_to "https://stackoverflow.com/users/#{current_user.id}"
else
flash[:warning] = 'please sign in'
redirect_to '/login'
end
end
Возможно, вместо этого вы можете создать метод обновления в моей модели? –
какая ошибка вы получаете ..? – Milind
thats вещь, я не получаю ошибку, ее просто не запускает планировщик, но когда я делаю это из инициализатора, он делает –