cod*_*aks 6 ruby-on-rails sidekiq
我遇到了一个问题,我不知道如何删除 sidekiq 计划的作业我尝试了很多方法但没有成功
下面是我的代码:-
class UpdatePopularityWorker
include Sidekiq::Worker
sidekiq_options queue: 'es_sync'
def perform(city_id=nil)
clear_popularity_jobs(city_id)
time = ENV['UPDATE_POPULARITY'].present? ? ENV['UPDATE_POPULARITY'].to_i : 60.minutes
UpdatePopularityWorker.perform_in(time, city_id)
end
private
def clear_popularity_jobs(city_id)
queued_jobs = Sidekiq::ScheduledSet.new("es_sync")
jobs = queued_jobs.select{|retri|
retri.args == 'UpdatePopularityWorker'
}
jobs.each(&:delete)
end
end
Run Code Online (Sandbox Code Playgroud)
但执行后我收到以下错误:-
{"context":"Job raised exception","job":{"class":"UpdatePopularityWorker","args":[],"retry":true,"queue":"es_sync","jid":"db75d1e92933dfad69449dfa","created_at":1568050410.422802,"enqueued_at":1568050410.423174,"error_message":"wrong number of arguments (given 1, expected 0)"
Run Code Online (Sandbox Code Playgroud)
当我尝试在控制台中执行时,我也会收到错误参数的错误:-
Sidekiq::ScheduledSet.new("es_sync")
ArgumentError: wrong number of arguments (given 1, expected 0)
Run Code Online (Sandbox Code Playgroud)
请有人建议或帮助我解决这种情况。提前致谢 :)
May*_*hah 11
您只需找到计划作业并根据与您的代码库匹配的任何条件将其删除。
queue = Sidekiq::ScheduledSet.new
queue.each do |job|
job.delete if (job.klass == 'Notification' && job.args.first == id)
end
Run Code Online (Sandbox Code Playgroud)
该错误描述了问题:
ArgumentError: wrong number of arguments (given 1, expected 0)
Run Code Online (Sandbox Code Playgroud)
你要:
Sidekiq::ScheduledSet.new
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8356 次 |
| 最近记录: |