安装和配置芹菜的构建方法

collective.recipe.celer的Python项目详细描述


Introduction

此配方安装芹菜并创建一个celeryconfig.py模块 指定的配置选项。它有助于管理多个配置 (例如开发和生产)使用构建。

您可以在这样的部分中使用它:

[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

Supported options

General options

鸡蛋
您想提供给芹菜的附加鸡蛋列表。用这个来 添加其他依赖项,如kombu-sqlalchemy或模块 包含您的任务定义。
脚本
控制生成哪些脚本。如果省略了这个选项,那么 将生成脚本。如果没有给定值,则脚本生成为 已禁用。
配置路径

包含celeryconfig.py模块的目录的位置。由 默认情况下,在部件目录中创建配置模块。 您可以在其他部分中使用它来包括配置模块:

[celery]
recipe = collective.recipe.celery

[myapp]
recipe = zc.recipe.egg
eggs = myapp
extra-paths = ${celery:config-path}

Celery options

支持以下配置选项。参见芹菜文档 更多细节。

代理传输
要使用的Kombu交通工具。您可以使用自定义传输类名,或者 选择一个内置传输:amqplibpikaredisbeanstalksqlalchemydjangomongodbcouchdb
代理主机
代理的主机名。
代理端口
代理的端口号。
代理用户
要连接的用户名。
代理密码
要连接的密码。
经纪人vhost
虚拟主机。
结果后端
用于存储任务结果的后端。可以是database之一, cachemongodbredistyrantamqp
结果dburi
数据库结果后端的连接字符串。
导入
芹菜守护进程启动时要导入的模块列表。指定一个 每行模块。
芹菜日志文件
芹菜守护进程将消息记录到的文件名。
芹菜原木水平
日志级别可以是DEBUGINFOWARNINGERRORCRITICAL.
芹菜的并发性
正在执行的并发工作进程/线程/绿色线程数 任务。
附加配置

可以使用 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}

Changelog

1.0(2011-08-15)

  • 初次发布。 [布希]

Example usage

我们将从创建使用配方的构建开始:

>>> 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))

运行构建会给我们带来:

>>> 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>

检查我们是否有芹菜脚本:

>>> ls(sample_buildout, 'bin')
-  buildout
-  celeryctl
-  celeryd

检查是否有芹菜配置文件:

>>> ls(sample_buildout, 'parts', 'celery')
- celeryconfig.py

如果运行celerid脚本,它会打印出配置数据:

>>> 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>

我们可以使用“鸡蛋”选项包括其他鸡蛋:

>>> 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

我们只创建芹菜脚本:

>>> 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>

配方支持一组有限的芹菜配置指令。任何 可以使用附加配置选项添加附加指令:

>>> 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>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言