首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

celery 中一个定时任务的 state 一直是 started, 此任务并未执行 有可能什么原因

  •  
  •   dwadewyp · 58 天前 · 567 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前可知 1.这个任务执行时间较长,同步方式执行了一下在生产环境大概一两个小时,所以推测 有可能是任务执行过长 直接 timeout,不过查看了下 定时任务并没有设置类似于 timeout 的参数 2.在 celery 的日志中 可以查看到 broker 已经 send 了这个任务 并且 worker 也 receive 到这个任务,不过没有 successed 的 log. 有没有可能 queue 消费了 不过 worker 执行时出现的问题? 有木有一些好的排查方式 提供下?

    6 回复  |  直到 2019-08-22 15:56:47 +08:00
        1
    long2ice   58 天前
    就是任务执行时间过长了,celery 有 time_limit 和 soft_time_liimit 两个配置你可以看一下。
        2
    marco25   58 天前
    worker 里面加点 log 打印出来看看到哪里了?
        3
    dwadewyp   58 天前
    @long2ice 我这边配置没有加 time_limit 单个任务也没有加 soft_time_limit, 能不能是 worker 执行过长 自动挂起了
        4
    jesnridy   58 天前
    是不是负载均衡导致的,默认负载方式是预取操作,会导致一个 worker 正在运行耗时的任务,另一个任务也被分配到这个 worker 必须等待前面一个任务执行完才能执行,即使其他 worker 是空闲的,启动参数加个-Ofair 试试
        5
    vZexc0m   58 天前
    不知道是不是因为消费者进程假死的问题导致的。以前也遇到过消费者不执行任务的问题,后来切换到 dramatiq 就没问题了。
        6
    hanssx   57 天前
    我之前这个参数是 True,立即任务的状态一直是 PENDING,你看看这个
    CELERY_IGNORE_RESULT = False # 是否需要关注任务执行状态,如果设置为 True,任务状态会一直是 PENDING,为啥呢???

    另外,任务执行时间长,celery 任务还真有执行时间限制?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1162 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 23:45 · PVG 07:45 · LAX 16:45 · JFK 19:45
    ♥ Do have faith in what you're doing.