Sidekiq工作需要多长时间?

问题描述 投票:3回答:1

Sidekiq wiki中声明:

  1. 让您的工作变得简单

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

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

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

ruby-on-rails ruby redis sidekiq
1个回答
6
投票

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

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

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

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

然而:

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