我有一个非常简单的Celery任务,它运行一个(长时间运行的)shell脚本:
import os
from celery import Celery
os.environ['CELERY_TIMEZONE'] = 'Europe/Rome'
os.environ['TIMEZONE'] = 'Europe/Rome'
app = Celery('tasks', backend='redis', broker='redis://OTHER_SERVER:6379/0')
@app.task(name='ct.execute_script')
def execute_script(command):
return os.system(command)
我让这个任务在我的服务器上运行,我从其他运行Redis数据库的服务器启动它。 任务似乎运行成功(我看到在文件系统上执行脚本的结果),但我总是开始收到以下错误:
^{pr2}$可能是什么?当我将Redis服务器设置为redis://OTHER_SERVER:6379/0
并且它正常工作(自从任务启动之后),它为什么要尝试联系localhost
?谢谢
当您设置
backend
参数时,Celery
将使用它作为结果后端。在代码中,告诉
Celery
使用本地redis服务器作为结果后端。在您看到了
ConnectionError
,因为celery无法将reult保存到本地redis服务器。您可以禁用result backend或启动本地redis服务器或将其设置为其他\u服务器。在
参考号:
相关问题 更多 >
编程相关推荐