This is my scheduler.rb in my initializer file
unless defined?(Rails::Console) || File.split($0).last == 'rake'
s = Rufus::Scheduler.singleton
s.every '1m', :tag => 'main_process' do
Rails.logger.info "hello, it's #{Time.now}"
Rails.logger.flush
Bid.all.each do |bid|
id = bid.event_id
puts "*" * 50
puts bid.id
puts bid.event_id
puts "*" * 50
# @price = BuyNowBid.find_by(bid_id: params[:bid_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)
if @low <= bid.bid
send_message("+13125501444", "Lowest price matched! Buy your ticket now!")
bid.bid = 0
bid.save
end
else
puts 'problem with @events?'
p @events
end
end
end
конецРуфус драгоценный камень, как сохранить одну работу работает при остановке другого
Защиту send_message (phone_number, alert_message) account_sid = "" auth_token = ""
@client = Twilio::REST::Client.new account_sid, auth_token
@twilio_number = ""
message = @client.messages.create(
:from => @twilio_number,
:to => phone_number,
:body => alert_message
)
puts message.to
end
так что я m запускает задание, чтобы вытащить самую низкую цену каждую минуту из api, и когда самая низкая цена соответствует ставке, которую кто-то помещает, они получают текстовое уведомление, которое работает, хотя проблема, с которой я столкнулась, - это то, что я хочу, чтобы работа продолжала работать где-нибудь минута Я тяну вниз t от api, но я не хочу, чтобы пользователь получал одно и то же текстовое уведомление каждую минуту.
Прямо сейчас у меня оно есть, так что этого не происходит, но после того, как ставка согласована, она по существу удаляется из базы данных. так что в основном я спрашиваю, как я могу продолжать очищать api каждую минуту за самую низкую цену, но отправлять только один текст пользователю, уведомляющему их о совпадении ставок, и не нужно удалять эту ставку из базы данных.
Очень нечеткий, ваш вопрос название носит технический характер, в то время как ваш вопрос (нижний, большой, параграф) кажется более высоким. У меня создалось впечатление, что вы могли бы поддерживать индексирование индексов в памяти в своем последнем полученном уведомлении и каждый раз проверять его, чтобы определить, стоит ли отправлять новое уведомление. – jmettraux