Celery将向空闲的工作人员发送任务。
我有一个任务将每5秒运行一次,我希望这个任务只发送给一个指定的工作人员。
其他任务可以共享剩余的工人
芹菜能做这个吗??
我想知道这个参数是什么:CELERY_TASK_RESULT_EXPIRES
这是否意味着任务不会发送给队列中的工作人员
或者,如果任务运行时间过长,它会停止任务吗?
当然可以。最好的方法是使用不同的队列将芹菜工人分开。您只需要确保您需要的任务进入单独的队列,以及您的工作人员正在侦听的特定队列。长话短说:http://docs.celeryproject.org/en/latest/userguide/routing.html
为了回答第二个问题,CELERY_TASK_RESULT_EXPIRES
是任务结果持久化的时间(以秒为单位)。因此,任务结束后,其结果将保存到结果后端。结果会在该参数指定的时间内保持在那里。当不同的调用方可能访问任务结果时,会使用它。
这可能与你的问题无关。对于第一个解决方案,正如前面所述,您必须使用多个队列。但是,请注意,您不能将任务分配给特定的Worker Process,而只能分配给特定Worker,然后由特定Worker将其分配给特定Worker Process。