Sidekiq的工作需要多长时间?

Rev*_*oon 3 ruby ruby-on-rails redis sidekiq

Sidekiq wiki中声明:

  1. 让您的工作变得简单

我变得简单,我得到幂等和交易,但什么是小的?可能需要内存和计算时间是一个很好的衡量标准?我的Sidekiq工作需要10秒到30分钟.

我认为10秒是可以的,但30分钟的长期任务呢?我将某种类型的所有数据从数据库加载到内存中,对它们运行冗长的计算,然后写回结果.一个工人工作中的所有三件事.

那很好吗?或者我应该从一个工作人员工作,多个工作人员工作调用运行小计算?问题是,这些小型计算可能需要一些复杂的哈希表来进行计算,并且建议不要在Redis中保留它,只需要很小的简单值.

Tob*_*cht 6

这取决于您希望/必须调用该作业的频率以及您是否可以接受它需要这么长时间.

如果你以比完成它更短的间隔运行工作,那肯定是太长了.

如果您可以改善总运行时间(例如,如果其中一些可以同时运行),则将其拆分为多个工作人员只会对此有所帮助

所以一如既往的经验法则:只要它符合您的需求就可以了.

然而:

  • 在长期工作中,您应该考虑到工作可能因执行任何原因而失败(服务器崩溃等).
  • 你能继续在那里继续这么长的工作还是能够正常回滚?
  • 另外:如果在执行作业时更改数据会发生什么?