Celery的安装和配置构建脚本
项目描述
简介
此脚本安装Celery并创建一个具有指定配置选项的celeryconfig.py模块。它通过Buildout帮助管理多个配置(例如,开发和生产)。
您可以使用它如下
[celery] recipe = collective.recipe.celery broker-transport = sqlakombu.transport.Transport broker-host = sqlite:///celery_broker.db result-backend = database result-dburi = sqlite:///celery_results.db imports = myapp.tasks eggs = kombu-sqlalchemy myapp
支持选项
通用选项
- eggs
要提供给Celery使用的附加egg列表。使用此选项添加其他依赖项,例如kombu-sqlalchemy或包含您的任务定义的模块。
- scripts
控制生成的脚本。如果省略此选项,则将生成所有脚本。如果没有提供值,则禁用脚本生成。
- config-path
包含celeryconfig.py模块的目录位置。默认情况下,配置模块在部分目录中创建。您可以使用此选项在其他部分中包含配置模块
[celery] recipe = collective.recipe.celery [myapp] recipe = zc.recipe.egg eggs = myapp extra-paths = ${celery:config-path}
Celery选项
以下配置选项受支持。有关更多详细信息,请参阅Celery文档。
- broker-transport
要使用的Kombu传输。您可以使用自定义传输类名称,或选择以下内置传输之一:amqplib、pika、redis、beanstalk、sqlalchemy、django、mongodb、couchdb。
- broker-host
代理的主机名。
- broker-port
代理的端口号。
- broker-user
连接时使用的用户名。
- broker-password
连接时使用的密码。
- broker-vhost
虚拟主机。
- result-backend
用于存储任务结果的后端。可以是以下之一:数据库、缓存、mongodb、redis、tyrant 或 amqp。
- result-dburi
数据库结果后端的连接字符串。
- 导入
在celery守护进程启动时导入的模块列表。每行指定一个模块。
- celeryd-log-file
celery守护进程记录消息的文件名。
- celeryd-log-level
日志级别,可以是以下之一:DEBUG、INFO、WARNING、ERROR 或 CRITICAL。
- celeryd-concurrency
执行任务的并发工作进程/线程/绿色线程的数量。
- additional-config
可以使用 additional-config 选项添加任何额外的配置指令。
示例
additional-config = CELERY_TASK_PUBLISH_RETRY=True CELERY_TASK_PUBLISH_RETRY_POLICY={"max_retries": 2, "interval_start": 10, "interval_step": 0, "interval_max": 10}
变更日志
1.0 (2011-08-15)
初始发布。[buchi]
示例用法
我们将首先创建一个使用该食谱的buildout
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... broker-transport = sqlakombu.transport.Transport ... broker-host = sqlite:///celery_broker.db ... result-backend = database ... result-dburi = sqlite:///celery_results.db ... imports = myapp.tasks ... """% dict(server=link_server))
运行buildout给出
>>> print system(buildout) Installing celery. celery: Creating directory /sample-buildout/parts/celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. Getting distribution for 'celery'. Got celery 2.3.1. Generated script '/sample-buildout/bin/celeryctl'. Generated script '/sample-buildout/bin/celeryd'. <BLANKLINE>
检查是否有celery脚本
>>> ls(sample_buildout, 'bin') - buildout - celeryctl - celeryd
检查是否获取了celery配置文件
>>> ls(sample_buildout, 'parts', 'celery') - celeryconfig.py
如果我们运行celeryd脚本,它将打印出配置数据
>>> print(system(join(sample_buildout, 'bin', 'celeryd'))) BROKER_HOST='sqlite:///celery_broker.db' BROKER_TRANSPORT='sqlakombu.transport.Transport' CELERY_IMPORTS=('myapp.tasks',) CELERY_RESULT_BACKEND='database' CELERY_RESULT_DBURI='sqlite:///celery_results.db' <BLANKLINE>
我们可以使用eggs选项包含额外的eggs
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... eggs = ... other ... """% dict(server=link_server)) >>> print system(buildout), Uninstalling celery. Installing celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. Getting distribution for 'other'. Got other 1.0. Generated script '/sample-buildout/bin/celeryctl'. Generated script '/sample-buildout/bin/celeryd'.
我们可以使用scripts选项控制生成的脚本。如果没有提供值,则禁用脚本生成
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... scripts = ... """% dict(server=link_server)) >>> print system(buildout), Uninstalling celery. Installing celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. >>> ls(sample_buildout, 'bin') - buildout
让我们只创建celeryd脚本
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... scripts = ... celeryd ... """% dict(server=link_server)) >>> print system(buildout), Uninstalling celery. Installing celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. Generated script '/sample-buildout/bin/celeryd'. >>> ls(sample_buildout, 'bin') - buildout - celeryd
支持的配置指令可能包括字符串、整数和元组等多种类型
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... broker-port = 8080 ... broker-user = guest ... imports = ... myapp.tasks ... other.tasks ... """% dict(server=link_server)) >>> print system(buildout), Uninstalling celery. Installing celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. Generated script '/sample-buildout/bin/celeryctl'. Generated script '/sample-buildout/bin/celeryd'.
让我们验证生成的配置数据
>>> cat(sample_buildout, 'parts', 'celery', 'celeryconfig.py') BROKER_PORT = 8080 BROKER_USER = 'guest' CELERY_IMPORTS = ('myapp.tasks', 'other.tasks') <BLANKLINE>
该食谱支持celery的一组有限配置指令。任何额外的指令都可以使用additional-config选项添加
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = celery ... index = %(server)s/index ... find-links = %(server)s ... ... [celery] ... recipe = collective.recipe.celery ... additional-config = ... CELERY_TASK_PUBLISH_RETRY = True ... CELERY_TASK_PUBLISH_RETRY_POLICY = {"max_retries": 2, ... "interval_start": 10, ... "interval_step": 0, ... "interval_max": 10} ... """% dict(server=link_server)) >>> print system(buildout), Uninstalling celery. Installing celery. celery: Generated config file /sample-buildout/parts/celery/celeryconfig.py. Generated script '/sample-buildout/bin/celeryctl'. Generated script '/sample-buildout/bin/celeryd'.
让我们验证生成的配置数据
>>> cat(sample_buildout, 'parts', 'celery', 'celeryconfig.py') CELERY_TASK_PUBLISH_RETRY = True CELERY_TASK_PUBLISH_RETRY_POLICY = {"max_retries": 2, "interval_start": 10, "interval_step": 0, "interval_max": 10} <BLANKLINE>
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
collective.recipe.celery-1.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dbc42e203b3f735520a6f5c2ce7a4e6a3d64ea41917c39ef6b0195ba6c08e0b8 |
|
MD5 | 36aa5e1ea0dc7e730fc906911c3284b2 |
|
BLAKE2b-256 | 17a6a64c016b63f32e7191246d9b8537634221545945331b75b50edf79c4fc81 |