Sidekiq工作需要多长时间?

时间:2013-07-18 15:32:07

标签: ruby-on-rails ruby redis sidekiq

Sidekiq wiki中声明:

  
      
  1. 让您的工作变得简单
  2.   

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

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

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

1 个答案:

答案 0 :(得分:6)

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

如果你以比完成时间更短的间隔运行工作肯定太长了。

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

一如既往的经验法则:只要符合你的需求就可以了。

但是:

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