sca*_*a05 4 zope plone recipe buildout batch-processing
我有一个批处理作业,我需要偶尔对我的Plone实例运行.它需要访问我的Plone产品和其他Plone代码中的代码并查询目录.我已将该脚本包含在我的Plone产品中,目前通过它运行
bin/instance run <path to script in eggs directory>
Run Code Online (Sandbox Code Playgroud)
显然,如果我的产品的新版本出现,我需要改变路径指向新版本的鸡蛋.我想要做的是在我的产品的setup.py中定义脚本的任何入口点,然后使用buildout配方,zc.recipe.egg以便我可以运行
bin/myscript
Run Code Online (Sandbox Code Playgroud)
我该怎么做,仍然提供我的脚本访问顶级app对象和我的Plone实例中安装的所有代码?
从Zope 2.13开始,您可以为zopectl.command入口点注册脚本.这些将被视为bin/instance控制器脚本上的新命令.
例如,以下内容将鸡蛋中的callables与命令联系起来:
[zopectl.command]
mybatch = example.egg.commands:mybatch
Run Code Online (Sandbox Code Playgroud)
您的callable将传递给根级应用程序对象,以及其余的命令行参数:
def mybatch(app, args):
site = app.mysiteid
# remember to set up your site correctly (create request, call hooks, etc)
Run Code Online (Sandbox Code Playgroud)
使用args为脚本实现命令行开关.
请参阅配置和运行Zope文档 ; 请注意,您的命令名称不能-在名称中使用短信().
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |