是否可以使用Redis检索以下作业计数?
Sidekiq::ScheduledSet.new.inject(0) do |memo, job|
memo += 1 if job.at <= Time.now
memo
end
即预定的作业应该已经运行,但尚未运行。对于较小的队列大小,此方法行之有效,但对于较大的队列,则伸缩性较差(对于60k计划的作业,扩展时间超过30秒)。谢谢!
答案 0 :(得分:1)
"ZRANGEBYSCORE schedule '-inf' #{Time.now.to_f}"
答案 1 :(得分:0)
受迈克的启发,我采用了以下方法:
Sidekiq.redis { |c| c.zcount('schedule', '-inf', Time.now.to_f) }