Python之Celery笔记讲解第7篇:为celery设置环境变量,创建应用

举报
程序员一诺python 发表于 2025/09/03 10:46:38 2025/09/03
【摘要】 1. 问题抛出 celery介绍 1.RabbitMQ 2.Redis 1.创建应用 2.调用任务 3.存储结果 1.直接通过app来配置 2.专有配置文件 1. signature 指定任务发到那个队列中 配置周期性任务, 或者定时任务 周期执行任务 为celery设置环境变量 配置应用 设置app自动加载任务 从已经安装的app中查找任务 加上app对象的task装饰器 此

🚀🚀🚀本篇主要内容

为celery设置环境变量

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'celery_demo.settings')

创建应用

app = Celery("demo")

配置应用

app.conf.update( # 配置broker, 这里 用redis作为broker BROKER_URL='redis://:332572@127.0.0.1:6379/1', # 使用项目数据库存储任务执行结果 CELERY_RESULT_BACKEND='django-db', # 配置定时器模块,定时器信息存储在数据库中 CELERYBEAT_SCHEDULER='django_celery_beat.schedulers.DatabaseScheduler',

)

设置app自动加载任务

从已经安装的app中查找任务

app.autodiscover_tasks(settings.INSTALLED_APPS)

由于定时器信息存储在数据库中, 需要先生成对应表, 对diango_celery_beat执行迁移操作,创建对应表:
```python
python manage.py migrate django_celery_beat

可登录网站后台Admin去创建对应任务, 首先 先在tasks.py模块中增加新的任务,用于定时去执行(5秒执行一次)

from celery_demo.celery import app
import time




# 用于定时执行的任务


@app.task
def interval_task():
    print("我每隔5秒钟时间执行一次....")

首先创建后台管理员帐号:

python manage.py createsuperuser

登录管理后台Admin:

其中Crontabs用于定时某个具体时间执行某个任务的时间,Intervals用于每隔多久执行任务的事件,具体任务的执行在Periodic tasks表中创建。

要创建每隔5秒执行某个任务,所以在Intervals表名后面点击Add按钮:

然后在Periodic tasks表名后面,点击Add按钮,添加任务:

启动定时任务: ```pyt

[asyncpg 文档]

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。