我正在尝试设置我的django项目以与Celery和Redis一起工作。我在本地运行它没有问题,但我无法让它在生产服务器中工作。
我的主机建议使用 unixsocket 设置 Redis 并在屏幕中运行 redis:
- 端口 0
- Unixsocket/path/redis.sock
这一切都有效,当我运行 redis 时,我得到:
* The server is now ready to accept connections at /here-comes-my-path/redis.sock
现在我有问题:
- 如何验证连接?
redis-cli -p 0
回报Could not connect to Redis at 127.0.0.1:0: Can't assign requested address not connected>
如何启动芹菜工人?跑步
celery -A rbwpredictor worker -l info
返回(我已经 xed 敏感数据(:Traceback (most recent call last):
文件 "/usr/home/xxxx/.virtualenvs/xxxx/bin/celery",第 6 行,在 来自芹菜。主要进口主要文件"/home/xxx/domain/xxxx/public_python/xxxx/celery.py",第 6 行,在 从芹菜进口芹菜 导入错误:无法导入名称"芹菜">
settings.py 中的我的芹菜设置:
CELERY_RESULT_BACKEND = 'django-db'
CELERY_STATUS_PENDING = 'PENDING'
CELERY_STATUS_STARTED = 'STARTED'
CELERY_STATUS_RETRY = 'RETRY'
CELERY_STATUS_FAILURE = 'FAILURE'
CELERY_STATUS_SUCCESS = 'SUCCESS'
如上所述,本地一切正常,这是我在服务器上挣扎的配置。
您已将 redis 配置为通过 unix 套接字而不是通过标准端口进行通信
要连接 redis-cli,您可以使用
redis-cli -s /here-comes-my-path/redis.sock
你应该重新配置 redis.conf 或只设置BROKER_URL
BROKER_URL = 'redis+socket:///here-comes-my-path/redis.sock'