You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django集成Celery+Redis后任务需手动启动Worker,如何实现自动执行?

解决Celery任务无法自动执行的问题

核心原因

你手动执行python -m celery -A django_celery worker -l info时,Worker是前台运行状态,关闭终端后进程就会终止,导致用户调用.delay()时没有Worker进程处理任务。要实现任务自动执行,必须让Celery Worker作为常驻后台服务持续运行。

具体解决方案

1. 用systemd配置Celery常驻服务(推荐)

通过systemd配置服务,让Celery Worker随系统开机自动启动,进程意外终止时也会自动重启。

  • 创建systemd服务文件:
sudo nano /etc/systemd/system/celery.service
  • 写入以下配置(根据你的实际路径修改占位内容):
[Unit]
Description=Celery Worker Service
After=network.target redis-server.service

[Service]
Type=forking
User=你的服务器用户名
Group=你的服务器用户组
WorkingDirectory=/path/to/your/django/project
Environment="PATH=/path/to/your/venv/bin"
ExecStart=/path/to/your/venv/bin/celery multi start w1 -A django_celery -l info --pidfile=/var/run/celery/%n.pid --logfile=/var/log/celery/%n%I.log
ExecStop=/path/to/your/venv/bin/celery multi stopwait w1 --pidfile=/var/run/celery/%n.pid
ExecReload=/path/to/your/venv/bin/celery multi restart w1 -A django_celery -l info --pidfile=/var/run/celery/%n.pid --logfile=/var/log/celery/%n%I.log

[Install]
WantedBy=multi-user.target
  • 创建日志和进程ID存储目录:
sudo mkdir -p /var/run/celery
sudo mkdir -p /var/log/celery
sudo chown 你的服务器用户名:你的服务器用户组 /var/run/celery /var/log/celery
  • 启动并启用服务:
sudo systemctl daemon-reload
sudo systemctl start celery
sudo systemctl enable celery
  • 检查服务运行状态:
sudo systemctl status celery

确保输出显示active (running)状态。

2. 验证Celery基础配置

确认Django项目中Celery配置无错误:

  • 检查Celery实例文件(通常是celery.py)是否正确加载Django配置:
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '你的项目名.settings')

app = Celery('django_celery')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
  • 确认settings.py中的Redis broker配置正确:
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
  • 确保Redis服务处于运行状态:
sudo systemctl status redis-server

3. 测试任务执行

完成配置后,调用一次.delay()触发任务,然后查看Celery日志确认任务被处理:

tail -f /var/log/celery/w1.log

如果日志中出现任务执行的相关记录,说明配置生效。

内容的提问来源于stack exchange,提问作者Sapna Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:24