运行和监视芹菜任务

cubicweb-celerytask的Python项目详细描述


摘要

运行、监视和记录芹菜任务。

安装和设置

使用芹菜任务或cubicweb芹菜任务声明任务。

在工作端,安装cw-celerytask-helpers

celleryconfig.py示例:

CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = BROKER_URL
CUBICWEB_CELERYTASK_REDIS_URL = CELERY_BROKER_URL
CELERY_IMPORTS = ('cw_celerytask_helpers.helpers', 'module.containing.tasks')

在这个配置示例中,cw_celerytask_helpersin CELERY_IMPORTS需要发送日志数据(在任务中) 通过redis返回到cubicweb实例。这个 CUBICWEB_CELERYTASK_REDIS_URL是用于此的redis终结点 日志处理机制。

启动工人:

# running cubicweb tasks (celeryconfig.py will be imported from your instance config directory)
celery -A cubicweb_celery -i <CW_INSTANCE_NAME> worker -l info

# running pure celery tasks
celery worker -l info

任务状态同步需要运行芹菜监视器命令:

cubicweb-ctl celery-monitor <instance-name>

确保为cubicweb实例和 芹菜工人,通过芹菜配置模块环境的设置强制执行 变量(它必须是可导入的python模块)。

运行任务

创建任务:

fromceleryimportcurrent_appasappfromcelery.utils.logimportget_task_loggerlogger=get_task_logger(__name__)@app.task(name='hi_there')defmy_task(arg,kw=0):logger.info('HI %s%s!',arg,kw)return42

运行任务:

fromcubicweb_celerytask.entitiesimportstart_async_taskcwtask=start_async_task(cnx,'hi_there','THERE',kw=42)cnx.commit()

start_async_task()接受任务名称、任务对象或任务签名: http://docs.celeryproject.org/en/latest/userguide/canvas.html#signatures

例如,要在名为myqueue的专用队列中启动上述任务:

importcelerystart_async_task(cnx,celery.signature('hi_there',args=('THERE',),kwargs={'kw':42},queue='myqueue'))

测试基于任务的应用程序

在cubicweb测试模式下,任务不会自动运行,使用 cubicweb\u cellerytask.entities.get\u tasks()来反省它们 cubicweb\u cellerytask.entities.run\u all\u tasks()运行它们。

此外,芹菜总是渴望和芹菜传播的例外设置为 默认情况下为true。

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

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值