构建用于安装与zope的zca一起使用的芹菜并使用ini文件配置它的方法。
md.recipe.celer的Python项目详细描述
简介
此配方定义了一个自定义加载程序,可以从ini文件中读取芹菜配置。
这允许您使用模板为
示例生成配置,使用collective.recipe.template。自定义加载程序还可以在工人初始化时自动引导zca。
logging_conf=etc/logging.ini
zope_conf=etc/zope.conf
使用此选项可以
添加其他依赖项,如"kombu sqlalchemy"或包含任务定义的模块。
Celery_conf
Celery configuration.ini文件的位置。
logging_conf
包含Python日志的文件的位置设置zope配置文件的位置。
otherapp.tasks
芹菜结果后端=sqlite:///芹菜结果.db
芹菜结果序列化器=json
[芹菜节拍:task1]
每小时执行一次
task=myapp.tasks.task1
type=crontab
schedule={"分钟":0}
[cellerybeat:task2]
每隔30秒执行一次
task=myapp.tasks.task2
type=timedelta
schedule={"seconds":30}
[cellerybeat:task3]
午夜执行
task=otherapp.tasks.task3
type=crontab
schedule={"hour":0,"minute":0}
[celeri]部分定义了所有的芹菜选项。每个[芹菜节拍]
节定义一个单独的任务。
…[芹菜]
…broker_url=sqlite:///芹菜_broker.db
…芹菜进口=myapp.tasks,otherapp.tasks
…芹菜结果后端=sqlite:///芹菜结果.db
…芹菜结果序列化器=json
…
…[芹菜节拍:任务1]
…#每小时执行一次…task=myapp.tasks.task1
…类型=crontab
…日程表={"分钟":0}
…
…[芹菜节拍:任务2]
…#每30秒执行一次
…task=myapp.tasks.task2
…类型=时间增量
…日程表={"秒":30}
…
…[芹菜节拍:任务3]
…#午夜执行…task=otherapp.tasks.task3
…类型=crontab
…schedule={"hour":0,"minute":0}")
…[伐木工人]
…键=根
…
…[处理程序]
…键=控制台
…
…[格式化程序]
…键=通用
…
…[日志根]
…级别=信息
…处理程序=控制台
…
…[处理程序控制台]
…类=streamhandler
…参数=(sys.stderr,)
…级别=未设置
…格式化程序=通用
…
[格式化程序常规]
…format=%(asctime)s%(levelname)s[%(name)s]%(message)s"")
然后我们将创建一个使用配方的构建:
>;>write(示例构建,'buildout.cfg',
…""
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…芹菜配置=芹菜.ini
…logging_conf=logging.ini
…zope_conf=zope.conf
…""%dict(
…server=link_server))
运行构建会给我们带来::
>;打印系统(构建)
安装芹菜。
芹菜:创建目录/sample buildout/parts/celeriy。
芹菜:生成加载程序文件/sample buildout/parts/celeri/zopeloader.py。
获取"芹菜"的分发。
获取芹菜2.3.1。
生成脚本'/sample buildout/bin/celleryctl.'
生成的脚本'/sample buildout/bin/celleryd.'
<;blankline>;
我们得到了芹菜加载器::
>;>ls(示例"构建"、"部件"、"芹菜")
-loader.py
-zopeloader.py
[('broker_url','sqlite:///celeriry_broker.db'),
('celeribeat_schedule',
{'task1':{'schedule':<;crontab:0****(m/h/d/dm/my)>;,
'task':'myapp.tasks.task1'},
'task2':{'schedule':datetime.timedelta(0,30),
"任务":"myapp.tasks.task2"},
"任务3":{"日程安排":<;crontab:0***(m/h/d/dm/my)>;,
"任务":"otherapp.tasks.task3"},
("芹菜劫持根记录器",false),
("芹菜导入","myapp.tasks","otherapp.tasks"],
("Celery_result_backend"、"sqlite:///Celery_results.db"),
("Celery_result_serializer"、"json")]
<;blankline>;
>我们可以使用eggs选项包括其他eggs::
>;>;写入(示例构建,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…鸡蛋=
…其他
…"%dict(server=link_server))
>>gt;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
获取"其他"的分发。
获取其他1.0。
生成脚本"/sample buildout/bin/celleryctl"。
生成脚本"/sample buildout/bin/celleryd"。
生成脚本"/sample buildout/bin/distutilsscript"。
通过将芹菜固定到另一个版本并检查输出的脚本之一来触发此操作。
>;>;写入(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[版本]
…芹菜=2.3.0
…
…[芹菜]
…recipe=md.recipe.celeri
…鸡蛋=
…其他
…"%dict(server=link_server))
>>>打印系统(构建)
更新芹菜。
芹菜:生成加载程序文件/sample buildout/parts/celeri/zopeloader.py。
获取"芹菜==2.3.0"的分布。
获取芹菜2.3.0。
生成脚本/sample buildout/bin/celleryctl。
ge生成的脚本"/sample buildout/bin/celleryd"。
生成的脚本"/sample buildout/bin/distutilsscript"。
>;>>;cat(sample懔buildout,'bin','celleryctl')
!/用户/rwendt/projects/python/bin/python
<;blankline>;
导入sys
sys.path[0:0]=[
'/sample buildout/eggs/celeri-2.3.0-py2.7.egg',
'/sample buildout/eggs/other-1.0-py2.7.egg',
'/sample buildout/parts/celeri',
]
**
我们可以控制使用脚本选项生成哪些脚本。
如果未给定值,则禁用脚本生成:
>;>write(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…脚本=
…""%dict(server=link_server))
>>gt;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
>>ls(示例构建,"bin")
-buildout
让我们仅创建芹菜脚本::
>;>;写入(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…脚本=
…芹菜
…"%dict(server=link_server))
>;>;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
生成脚本/sample buildout/bin/芹菜。
>;ls(sample‘u buildout‘bin’)
-buildout
-celleryd
=
=
=
=
=
=
=
1.1(2013-12-19)
===
>1.0(2013-12-18)
=====
========================
-初始版本。大致基于collective.recipe.芹菜。
此配方定义了一个自定义加载程序,可以从ini文件中读取芹菜配置。
这允许您使用模板为
示例生成配置,使用collective.recipe.template。自定义加载程序还可以在工人初始化时自动引导zca。
logging_conf=etc/logging.ini
zope_conf=etc/zope.conf
使用此选项可以
添加其他依赖项,如"kombu sqlalchemy"或包含任务定义的模块。
Celery_conf
Celery configuration.ini文件的位置。
logging_conf
包含Python日志的文件的位置设置zope配置文件的位置。
otherapp.tasks
芹菜结果后端=sqlite:///芹菜结果.db
芹菜结果序列化器=json
[芹菜节拍:task1]
每小时执行一次
task=myapp.tasks.task1
type=crontab
schedule={"分钟":0}
[cellerybeat:task2]
每隔30秒执行一次
task=myapp.tasks.task2
type=timedelta
schedule={"seconds":30}
[cellerybeat:task3]
午夜执行
task=otherapp.tasks.task3
type=crontab
schedule={"hour":0,"minute":0}
[celeri]部分定义了所有的芹菜选项。每个[芹菜节拍]
节定义一个单独的任务。
…[芹菜]
…broker_url=sqlite:///芹菜_broker.db
…芹菜进口=myapp.tasks,otherapp.tasks
…芹菜结果后端=sqlite:///芹菜结果.db
…芹菜结果序列化器=json
…
…[芹菜节拍:任务1]
…#每小时执行一次…task=myapp.tasks.task1
…类型=crontab
…日程表={"分钟":0}
…
…[芹菜节拍:任务2]
…#每30秒执行一次
…task=myapp.tasks.task2
…类型=时间增量
…日程表={"秒":30}
…
…[芹菜节拍:任务3]
…#午夜执行…task=otherapp.tasks.task3
…类型=crontab
…schedule={"hour":0,"minute":0}")
…[伐木工人]
…键=根
…
…[处理程序]
…键=控制台
…
…[格式化程序]
…键=通用
…
…[日志根]
…级别=信息
…处理程序=控制台
…
…[处理程序控制台]
…类=streamhandler
…参数=(sys.stderr,)
…级别=未设置
…格式化程序=通用
…
[格式化程序常规]
…format=%(asctime)s%(levelname)s[%(name)s]%(message)s"")
然后我们将创建一个使用配方的构建:
>;>write(示例构建,'buildout.cfg',
…""
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…芹菜配置=芹菜.ini
…logging_conf=logging.ini
…zope_conf=zope.conf
…""%dict(
…server=link_server))
运行构建会给我们带来::
>;打印系统(构建)
安装芹菜。
芹菜:创建目录/sample buildout/parts/celeriy。
芹菜:生成加载程序文件/sample buildout/parts/celeri/zopeloader.py。
获取"芹菜"的分发。
获取芹菜2.3.1。
生成脚本'/sample buildout/bin/celleryctl.'
生成的脚本'/sample buildout/bin/celleryd.'
<;blankline>;
我们得到了芹菜加载器::
>;>ls(示例"构建"、"部件"、"芹菜")
-loader.py
-zopeloader.py
[('broker_url','sqlite:///celeriry_broker.db'),
('celeribeat_schedule',
{'task1':{'schedule':<;crontab:0****(m/h/d/dm/my)>;,
'task':'myapp.tasks.task1'},
'task2':{'schedule':datetime.timedelta(0,30),
"任务":"myapp.tasks.task2"},
"任务3":{"日程安排":<;crontab:0***(m/h/d/dm/my)>;,
"任务":"otherapp.tasks.task3"},
("芹菜劫持根记录器",false),
("芹菜导入","myapp.tasks","otherapp.tasks"],
("Celery_result_backend"、"sqlite:///Celery_results.db"),
("Celery_result_serializer"、"json")]
<;blankline>;
>我们可以使用eggs选项包括其他eggs::
>;>;写入(示例构建,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…鸡蛋=
…其他
…"%dict(server=link_server))
>>gt;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
获取"其他"的分发。
获取其他1.0。
生成脚本"/sample buildout/bin/celleryctl"。
生成脚本"/sample buildout/bin/celleryd"。
生成脚本"/sample buildout/bin/distutilsscript"。
通过将芹菜固定到另一个版本并检查输出的脚本之一来触发此操作。
>;>;写入(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[版本]
…芹菜=2.3.0
…
…[芹菜]
…recipe=md.recipe.celeri
…鸡蛋=
…其他
…"%dict(server=link_server))
>>>打印系统(构建)
更新芹菜。
芹菜:生成加载程序文件/sample buildout/parts/celeri/zopeloader.py。
获取"芹菜==2.3.0"的分布。
获取芹菜2.3.0。
生成脚本/sample buildout/bin/celleryctl。
ge生成的脚本"/sample buildout/bin/celleryd"。
生成的脚本"/sample buildout/bin/distutilsscript"。
>;>>;cat(sample懔buildout,'bin','celleryctl')
!/用户/rwendt/projects/python/bin/python
<;blankline>;
导入sys
sys.path[0:0]=[
'/sample buildout/eggs/celeri-2.3.0-py2.7.egg',
'/sample buildout/eggs/other-1.0-py2.7.egg',
'/sample buildout/parts/celeri',
]
**
我们可以控制使用脚本选项生成哪些脚本。
如果未给定值,则禁用脚本生成:
>;>write(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…脚本=
…""%dict(server=link_server))
>>gt;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
>>ls(示例构建,"bin")
-buildout
让我们仅创建芹菜脚本::
>;>;写入(示例"buildout,'buildout.cfg',
…"
…[构建]
…部分=芹菜
…索引=%(服务器)s/索引
…查找链接=%(服务器)s
…
…[芹菜]
…recipe=md.recipe.celeri
…脚本=
…芹菜
…"%dict(server=link_server))
>;>;打印系统(构建),
卸载芹菜。
安装芹菜。
芹菜:生成加载程序文件/示例构建/部件/芹菜/zopeloader.py。
生成脚本/sample buildout/bin/芹菜。
>;ls(sample‘u buildout‘bin’)
-buildout
-celleryd
=
=
=
=
=
=
=
1.1(2013-12-19)
===
>1.0(2013-12-18)
=====
========================
-初始版本。大致基于collective.recipe.芹菜。