使用sidekiq进行可靠的调度

时间:2014-10-14 09:02:16

标签: ruby cron sidekiq sidetiq

我正在构建类似于pingdom的监控服务,但监控系统的不同方面,并使用sidekiq对正常运行的任务进行排队。我需要做的是安排每分钟发送ping,而不是使用基于cron的系统,这需要每隔一分钟启动一个新的ruby实例我已经沿着使用sidetiq的路线(注意不同的拼写使用" t")使用sidekiq自己的队列来安排未来的任务。这感觉就像一个简洁的解决方案,但我担心这可能不是最安全的任务调度方式?如果系统存在问题(因为在某些时候不可避免),这种调度任务的方法是否会比使用基于cron的方法更不可靠?为什么?

由于

1 个答案:

答案 0 :(得分:0)

您对系统需求的描述太短,但我会尝试猜测它是什么:

首先使用sidekiq意味着您还需要一个redis实例,这也意味着您需要一种方法来监视sidekiq进程并在发生故障时重新启动它,并且可能是redis服务器。

基于cron任务的方法将具有更少的要求,因此失败的可能性更小。

cron已经存在了很长时间,它已经过测试并且非常可靠,但也有它的缺点。

说,你可以在主/从配置中构建一个具有独立redis实例的系统,你也可以使用Redis sentinel在主机故障的情况下实现故障转移,在这个设置上实现监控/警报系统(你可以使用像sidekiq作者这样的http://contribsys.com/inspeqtor/这样的超级简单的东西),你也可以在不同的机器上启动sidekiq的几个实例。

通过所有这些,您可以拥有一个非常可靠的系统来运行sidekiq with sidetiq。

希望有所帮助