出现问题时,如何停止代码中的celery?例如redis或数据库已关闭。
例如,如果init函数获得异常,我可以停止连接
@stop_if_error
@signals.worker_process_init.connect
def init_method(*_, **_):
#some init code
但是如果工人的工作正在进行中并且出现异常,如何停止?
答案 0 :(得分:0)
您可以将Celery配置为仅在代理关闭时重试N次(如果我理解得很好,请重试)。关于您提到的数据库-我假设您的意思是结果后端?如果这样做,则取决于您的用例。结果后端不起作用并不重要。
我们不进行任何检查,而是确保代理和结果后端具有高可用性(例如,Redis集群)。