[英]Celery + Redis losing connection
我有一個非常簡單的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)
我在服務器MY_SERVER上運行了此任務,並從也在運行Redis數據庫的OTHER_SERVER啟動了該任務。 該任務似乎已成功運行(我看到在文件系統上執行腳本的結果),但是我總是開始遇到以下錯誤:
INTERNAL ERROR: ConnectionError('Error 111 connecting to localhost:6379. Connection refused.',)
會是什么呢? 為什么我將Redis服務器設置為redis://OTHER_SERVER:6379/0
並且可以正常工作(自啟動任務以來),為什么嘗試聯系localhost
? 謝謝
設置backend
參數時, Celery
會將其用作結果后端。
在代碼上,您告訴Celery
使用本地Redis服務器作為結果后端。
您看到了ConnectionError
,因為celery無法將結果保存到本地Redis服務器。
您可以禁用結果后端或啟動本地Redis服務器或將其設置為OTHER_SERVER。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.