【问题标题】:Reliable scheduling with sidekiq使用 sidekiq 进行可靠调度
【发布时间】:2014-12-09 00:03:45
【问题描述】:

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

谢谢

【问题讨论】:

    标签: ruby cron sidekiq sidetiq


    【解决方案1】:

    您对系统需求的描述太短了,但我会试着猜测一下:

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

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

    cron 已经存在了很长时间,它经过了实战考验,非常非常可靠,但也有它的缺点。

    也就是说,您可以在主/从配置中构建具有单独的 redis 实例的系统,您还可以使用 Redis sentinel 在主故障的情况下实现故障转移,在此设置上实现监控/警报系统(您可以使用来自sidekiq 作者的http://contribsys.com/inspeqtor/ 之类的超级简单的东西),您还可以在不同的机器上启动多个sidekiq 实例。

    有了所有这些,您就可以拥有一个非常可靠的系统来使用 sidetiq 运行 sidekiq。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 2014-11-27
      相关资源
      最近更新 更多