0
我想做一個for
循環,在sidekiq worker中每個人之間有5分鐘的延遲。但是,當我嘗試部署到Heroku的崩潰我的應用程序Rails Sidekiq延遲任務
class DelayedCallWorker
include Sidekiq::Worker
include Sidekiq::Status::Worker
def perform(survey_id)
@twilio_sid = ENV['TWILIO_ACCOUNT_SID']
@twilio_token = ENV['TWILIO_AUTH_TOKEN']
@twilio_number = ENV['TWILIO_NUMBER']
@survey = Survey.find(survey_id)
phone_number = @survey.call_center_number
@client = Twilio::REST::Client.new @twilio_sid, @twilio_token
@leads = @survey.leads.where(call_needed: true)
@leads.each do |lead|
@call = @client.account.calls.create(
:from => @twilio_number,
:to => lead.phone,
:url => "http://example.com/connect?number=#{phone_number}"
)
sleep, 180
end
end
end
如果我註釋掉sleep, 180
一切工作正常,但後來沒有延遲。
我也嘗試過一個變化,我通過控制器中的線索環繞,並創建工人使用perform_in(5.minutes, survey_id)
每個工人較長的延遲,但同樣墜毀heroku。
有誰知道最好的方法是從sidekiq工作人員的內部做一個延遲嗎?