首页 > 其他 > 详细

celery

时间:2019-09-08 10:19:21      阅读:101      评论:0      收藏:0      [点我收藏+]
  • celery

    http://www.pianshen.com/article/2176289575/

    异步任务的调用方法:
    1.result = add.delay(1, 2):这是apply_async方法的别名,但接受的参数较为简单;
    2.result = add.apply_async(args=[1, 2], kwargs={‘countdown‘:5, ‘expires‘:60})
    3.result = celeryapp.send_task(‘task.add‘, args=[1, 2]):可以发送未被注册的异步任务,即没有被celery.task装饰的任务;

apply_async 可以传递更多的参数,
eg:
countdown=5:等待5S后再执行, eta=now+tiedelta(second=20):指定任务的开始时间, expires=60:指定任务的超时时间,
retry=True: 指定任务失败后是否重试

result.ready() 查看任务状态,返回布尔值, 任务执行完成, 返回 True, 否则返回 False.
result.get(timeout=5) 获取任务执行结果,可以设置等待时间
result.state # 查看任务当前的状态,
PENDING:任务等待中,
STARTED:任务已开始,
SUCCESS:任务执行成功,
FAILURE:任务执行失败,
RETRY: 任务将被重新执行,
REVOKED:任务取消,
PROCESS:任务执行中
result.traceback # 如果任务抛出异常, 可以获取完整的堆栈信息

任务的执行结果
执行结果保存到redis1号库, 在1号库会有类似下面格式的键, 其对应的值就是执行结果了.
键: celery-task-meta-080ee8b0-24c4-48a0-a2dd-a1bcebb45b5b
值: {
"status": "SUCCESS",
"result": 30,
"traceback": null,
"children": [],
"task_id": 080ee8b0-24c4-48a0-a2dd-a1bcebb45b5b
}

定时任务

from celery.schedule import crontab
技术分享图片

crontab对象指定精确时间, 默认参数值都为‘*‘ 意为每分钟都执行
这里指的是早上8点30
技术分享图片
技术分享图片
今天踩得坑是 在windows中,celery的定时任务不好使, 在linux环境下就没问题了, 不知道啥原因, 系统问题吧. 以后还是多用linux吧.

celery

原文:https://www.cnblogs.com/0916m/p/11484359.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!