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工作人员的内部做一个延迟吗?