我对 celery 和 redis 作为经纪人有疑问。一段时间后,我的芹菜工人停止工作并给我消息“消费者:连接拒绝了太多打开的文件。在 32 秒内重试”。我知道这个错误,即使它试图在 32 秒内连接到 redis,它也无法连接到它,我应该做的就是重新启动 worker。但是如何捕捉这个错误以便我可以处理它。我所能看到的只是在控制台中打印错误消息。
我正在使用 task.prerun、task.postrun 和 task.failure,但在打印错误消息期间没有人被调用。所以我认为芹菜内部正在发生一些事情。是否有某种 celery redis 侦听器,我可以在其中处理此错误并重新启动 worker。