我在Heroku上,因为我的redis数据库太满了而出错了。我的sidekiq进程停止了工作。直到我意识到这一天就好了。现在我有600多个工作,我试图处理,但他们现在只是破坏一切。当sidekiq无法处理作业或Enqueue开始填满时,如何发出警报?
答案 0 :(得分:1)
您可以按计划设置佣金任务以检查Sidekiq统计信息,然后采取适当的操作(例如发送电子邮件)。
我已经创建了自己的模块,其中包含Sidekiq的辅助方法,可用于多种用途,例如删除作业,检查队列,按特定标准重新查找作业等。https://gist.github.com/blotto/10324119
为了您的目的,请抓住sidekiq统计数据:
def sidekiq_stats()
summary = Hash.new
stats = Sidekiq::Stats.new
summary = { processed: stats.processed,
failed: stats.failed,
enqueued: stats.enqueued,
queues: stats.queues}
end
然后评估排队的值,设置你认为过高的容差,然后放开猎犬。
答案 1 :(得分:0)
如果您正在使用zabbix进行监控,则可以在https://github.com/hungntit/sidekiq_queue_zabbix使用sidekiq_queue_zabbix模板。当sidekiq队列大小高于一个指定的限制数
时,此模板支持显示图形和发送警报