我已经写了下面的代码片段,它将识别一个潜在的作业是否是唯一的,如果不是,它就不会运行它。我通过迭代调度队列中的每个作业并查看传递的作业参数来做到这一点。根据参数,我可以确定它是否是唯一的:
job_exists = { :appointment => false }
Sidekiq::ScheduledSet.new.sort.each do |job|
case job['args'][0]
when 'Appointment'
job_exists[:appointment] = true
end
end在接下来的代码片段中,它只是简单地检查布尔值,如果不存在,它将运行它。
但是,我得到了从Sidekiq::ScheduledSet.new.sort.each do |job|行抛出的错误comparison of Sidekiq::SortedEntry with Sidekiq::SortedEntry。
为什么这一行会导致抛出这个错误?
发布于 2015-07-16 23:49:12
因为您正在对内存中的整个集合进行排序。别干那事。
https://stackoverflow.com/questions/31457957
复制相似问题