在ruby on rails中,将延迟作业的睡眠延迟设置为小于5秒的效果如何。这一变化会带来什么负面影响?对应用程序的总体影响是什么?
发布于 2020-05-18 15:49:44
Delayed::Worker.sleep_delay配置当队列中没有找到作业时,工作进程在再次检查新作业之前休眠的时间(以秒为单位)。
检查新作业总是意味着DelayedJob运行数据库查询。
当您知道系统中几乎没有任何作业时,可以将sleep_delay设置为更高的数字,以减少对数据库的查询次数,并减少服务器的CPU和IO使用率。
如果您的作业应该几乎实时运行,并且您不能或不希望每个作业都等待几秒钟,那么您可以将sleep_delay设置为较小的数字。这意味着DelayedJob将更快地找到新工作。
这对你的应用程序意味着什么?较小的数量是否会影响应用程序的性能?这取决于您的应用程序:
我建议稍微玩弄一下数字,在你想要等待作业被挑选的平均时间和服务器的基本负载之间找到一个平衡点。你需要每秒检查新的工作吗?
对于大多数应用程序,除非它们有大量的流量和大量的后台作业,否则我认为更改此值不会对应用程序的其余部分产生任何影响。
https://stackoverflow.com/questions/61863492
复制相似问题