我有一个在 Heroku 上运行的应用程序,我使用 celery 和工作测功机来处理后台工作。
我正在运行使用大量内存的任务。这些任务大致在同一时间启动,但我只想同时运行一两个任务,其他任务必须在队列中等待。我怎样才能做到这一点?
如果它们同时运行,我就会耗尽内存并重新启动系统。我知道为什么它使用了大量内存并且不打算减少它
很简单:将并发(celery 工作进程的数量)限制为可以在此服务器上安全并行运行的任务数量。
请注意,如果您有不同的任务具有截然不同的资源需求(即一项任务消耗大量内存并需要几分钟才能完成,而几项任务速度很快且根本不需要太多资源),您可能最好使用两个不同的节点来为它们提供服务(一个用于繁重的任务,另一个用于轻量的任务),因此繁重的任务不会阻塞轻量的任务。您可以使用队列将任务路由到不同的 celery 节点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)