在执行?命令时,发生报错
celery -A celery_tasks.tasks worker -l info
Celery - redis.exceptions.ReadOnlyError: You can't write against a read only replica.
原因:找了大半天,发现redis服务器都为slave服务器,即没有一个是master服务器所以为导致以上报错
解决方法:
# 找到正在运行的redis 进程ID
ps aux | grep redis
# 将现有的redis服务关闭(此处ID为12232)
sudo kill -9 12232
# 修改redis的配置文件
sudo vi redis.conf
编辑内容,将从属命令注释掉,在此句前加‘#’,并保存退出
# 重启redis服务器
sudo redis-server redis.conf
再次执行
celery -A celery_tasks.tasks worker -l info
继续报错:django.core.exceptions.ImproperlyConfigured: Requested setting EMAIL_FROM, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
原因:没有在执行服务器上配置好Django的配置初始化
解决方法:
在tasks.py文件中添加Django的初始化配置
再次执行
celery -A celery_tasks.tasks worker -l info
大功告成!撒花撒花!