Celery:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第5行: | 第5行: | ||
*2009.04.24,Ask Solem 发布Celery 0.1.0 | *2009.04.24,Ask Solem 发布Celery 0.1.0 | ||
*2010.02.10,发布Celery 1.0.0 | *2010.02.10,发布Celery 1.0.0 | ||
*2016.11.04,发布Celery 4.0. | *2016.11.04,发布Celery 4.0.0。配置文件引入小写字母设置和重命名了一些前缀。 | ||
*2020.09.24,发布Celery 5.0.0 | *2020.09.24,发布Celery 5.0.0 | ||
*2021.06.18,发布Celery 5.1 | *2021.06.18,发布Celery 5.1 | ||
第68行: | 第68行: | ||
|[https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html#starting-the-scheduler Celery 文档:周期性任务 - 启动调度器] | |[https://docs.celeryproject.org/en/stable/userguide/periodic-tasks.html#starting-the-scheduler Celery 文档:周期性任务 - 启动调度器] | ||
}} | }} | ||
== 配置 == | |||
=== 概览 === | |||
配置一般写在单独的文件中。如果使用默认加载器,文件名称需要为celeryconfig.py。Celery 4.0 版引入了小写设置和重命名一些前缀,旧的配置命令将在Celery 6.0不可用。一个简单的配置文件: | |||
<syntaxhighlight lang="python"> | |||
# celery_task为项目目录,包含__init__.py、celeryconfig.py、task1.py、task2.py | |||
# 以下为celeryconfig.py文件内容: | |||
# 任务队列设置 | |||
broker_url = 'redis://127.0.0.1:6379' | |||
# 任务转态和结果存储设置 | |||
result_backend = 'redis://127.0.0.1:6379/0' | |||
# 指定时区,默认是 UTC | |||
timezone = 'Asia/Shanghai' | |||
# 导入任务模块 | |||
imports = ( | |||
'celery_task.task1', | |||
'celery_task.task2' | |||
) | |||
</syntaxhighlight> | |||
{{了解更多 | |||
|[https://docs.celeryproject.org/en/stable/userguide/configuration.html Celery 文档:配置和默认值] | |||
}} | |||
=== Broker === | |||
{| class="wikitable" style="width: 100%; | |||
! 名称 | |||
! 描述 | |||
! 示例 | |||
|- | |||
| [https://docs.celeryproject.org/en/stable/userguide/configuration.html#broker-url broker_url] | |||
| 默认消息队列URL。格式:<br /><code>transport://userid:password@hostname:port/virtual_host</code> <br />transport默认为<code>amqp://</code>,其他可选<code>redis://</code>、<code>sqs://</code>和<code>qpid://</code>。 | |||
| <code><nowiki>broker_url = 'redis://127.0.0.1:6379'</nowiki></code>使用redis作为消息队列。 | |||
|- | |||
| | |||
| | |||
| | |||
|} | |||
=== 日期时间 === | |||
{| class="wikitable" style="width: 100%; | |||
! 名称 | |||
! 描述 | |||
! 示例 | |||
|- | |||
| enable_utc | |||
| | |||
| | |||
|- | |||
| [https://docs.celeryproject.org/en/stable/userguide/configuration.html#timezone timezone] | |||
| 时区,默认"UTC" | |||
| | |||
|} | |||
=== 后端存储 === | |||
==资源== | ==资源== |
2021年10月22日 (五) 02:09的版本
Celery是基于Python的一个开源的分布式实时任务队列工具,同时也支持任务调度。celery单词中文为芹菜。
简介
时间轴
- 2009.04.24,Ask Solem 发布Celery 0.1.0
- 2010.02.10,发布Celery 1.0.0
- 2016.11.04,发布Celery 4.0.0。配置文件引入小写字母设置和重命名了一些前缀。
- 2020.09.24,发布Celery 5.0.0
- 2021.06.18,发布Celery 5.1
了解更多 >> Celery 文档:历史
安装
使用pip安装:
pip install -U Celery
基础知识
基本框架
名称 | 描述 |
---|---|
异步任务
定时任务
Celery也支持定时任务,即周期性任务(Periodic Tasks)。celery beat定期发布任务,然后由celery worker执行。
了解更多 >> Celery 文档:周期性任务
定时
类别 | 命令 | 描述 |
---|---|---|
启动
启动celery beat服务:
celery -A your_proj beat
通过-B,也可在启动celery worker服务时,同时启动celery beat服务。这种简单方便,但只适用于单个worker节点,因此不建议用于生产用途:
celery -A your_proj worker -B
了解更多 >> Celery 文档:周期性任务 - 启动调度器
配置
概览
配置一般写在单独的文件中。如果使用默认加载器,文件名称需要为celeryconfig.py。Celery 4.0 版引入了小写设置和重命名一些前缀,旧的配置命令将在Celery 6.0不可用。一个简单的配置文件:
# celery_task为项目目录,包含__init__.py、celeryconfig.py、task1.py、task2.py
# 以下为celeryconfig.py文件内容:
# 任务队列设置
broker_url = 'redis://127.0.0.1:6379'
# 任务转态和结果存储设置
result_backend = 'redis://127.0.0.1:6379/0'
# 指定时区,默认是 UTC
timezone = 'Asia/Shanghai'
# 导入任务模块
imports = (
'celery_task.task1',
'celery_task.task2'
)
了解更多 >> Celery 文档:配置和默认值
Broker
名称 | 描述 | 示例 |
---|---|---|
broker_url | 默认消息队列URL。格式:transport://userid:password@hostname:port/virtual_host transport默认为 amqp:// ,其他可选redis:// 、sqs:// 和qpid:// 。
|
broker_url = 'redis://127.0.0.1:6379' 使用redis作为消息队列。
|
日期时间
名称 | 描述 | 示例 |
---|---|---|
enable_utc | ||
timezone | 时区,默认"UTC" |
后端存储
资源
官网
- Celery 官网: https://docs.celeryproject.org/
- Celery 文档: https://docs.celeryproject.org/
- Celery 下载:https://pypi.org/project/celery/
- Celery 源代码:https://github.com/celery/celery
相关教程
- 极客学院wiki:Python 之旅 - Celery
- celerycn.io:Celery 中文手册
- 在 Flask 中使用 Celery
- Miguel Grinberg:Using Celery With Flask