我想实现一个电子邮件系统,将发送电子邮件时,我的celery 工人失去了与我的Redis服务器连接。
每当它失去连接时,它会发出警告:[2023-03-02 21:33:48,272: WARNING/MainProcess] consumer: Connection to broker lost. Trying to re-establish the connection...
并开始与服务器[2023-03-02 21:33:48,286: ERROR/MainProcess] consumer: Cannot connect to redis://127.0.0.1:6379//: Error 61 connecting to 127.0.0.1:6379. Connection refused.. Trying again in 2.00 seconds... (1/100)
重新连接
我用的是django3.2.8和celery 5.2.7。
我浏览了整个celery 文档和源代码,我知道在celery.worker.consumer.consumer
中有一个方法on_connection_error_after_connected
,当它失去连接时会被触发。
1条答案
按热度按时间c0vxltue1#
好的,我找到了一个解决方案。我设置了一个不同的日志,它记录了celery ,还检查了任何类似于连接丢失的警告或错误消息。代码如下:
这里
send_shutting_down_email
是一个函数,它将消息和主题作为参数并发送它。我相信有更好的方法可以做到这一点。如果有,请让我知道!