问题标签 [celeryd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 带有返回数据的芹菜任务:做错了还是做对了?
我正在学习使用芹菜。我有一个函数(在 Flask 应用程序中),从我到目前为止所学到的有点伪代码中:
我不是 100% 确定这是正确和最好的,但现在对我有用。似乎结果/返回的行可能是一个“返回 = run_task”,其中运行任务执行任务并等待。
我正在考虑重构方向——a)将这两行(结果/返回)捆绑在一个运行任务并调用结果的函数中,或者 b)将“AsyncResult”放入任务本身并返回。
以前做过这件事的人的芹菜方法是什么?或者只是来自以前微调过芹菜的人的一些反馈。
celery - 用芹菜对特定任务设置时间限制
我在 Celery 中有一个任务,在正常运行时可能会运行 10,000 秒。但是,我的所有其他任务都应该在不到一秒钟的时间内完成。如何在不更改短期运行任务的时间限制的情况下为故意长时间运行的任务设置时间限制?
python - celeryd 进程的数量是否取决于 --concurrency 设置?
我们在 Supervisor 后面运行 Celery 并以
然而,这会创建一个最多三层深度并包含最多 7 个 celeryd 进程的进程图(Supervisor 产生一个 celeryd,它产生几个其他的 celeryd,它再次产生进程)。我们的机器有两个 CPU 内核。
所有这些流程都在处理任务吗?也许其中一些只是工作人员池?--concurrency 设置如何与实际产生的进程数相关联?
python - Celery 中的进程数、货币和池大小
在 celery 3.0 中,最大并发数、实际运行的进程数和池大小之间有什么关系?我运行 celery 时将 max-currency( -c ) 设置为 1,然后弹出三个 celeryd 进程。我不知道为什么。
django - 新贵 - Django 和 Celeryd
我有我的 Ubuntu 服务器设置,所以我的 Django 项目将由暴发户启动,如下所示:
如您所见,我还在最后添加了 celeryd。但它没有开始我确定它没有开始,因为我的任务没有完成。当我在服务器上的终端中启动它时:
manage.py celeryd -l info -B 它确实启动了,我可以看到正在完成的任务。
我应该如何从 Django 开始?
heroku - 在 Heroku 上运行时,如何解决 celeryd 的退出超时问题(错误 R12)?
我在 Heroku dyno 上运行 celeryd。当我关闭它并且它之前已处理(甚至完成)至少一项任务时,它没有正确关闭并且我从 Heroku 收到错误 R12(退出超时)。
这是我从我的Procfile
(通过 Django 和 django-celery)运行 celeryd 的方式:
这是我正在做的事情来触发它:
这是我得到的日志输出:
最初,我在 celery 2.5.5 上遇到过这种情况。现在我升级到 3.0.9,我仍然有同样的问题。
据我所知,我的任务已经全部完成。通过在 celery dyno 上运行单个任务,给它足够的时间来完成然后关闭 dyno,这个错误可以可靠地重现。
我不知道还要检查什么。知道如何解决这个问题吗?当任务已经完成时,什么会阻止 celeryd 响应 Heroku 的 SIGTERM?
python - 带有 Mongo 连接错误的 Celerybeat
我正在尝试使用 celerybeat 设置一个 celery 任务队列,以便定期更新数据库。我的 celeryd 服务似乎运行良好,但 celerybeat 不断给我一个Connection error: [Errno 111]
:
这是我的 celeryconfig 文件:
我已经为此工作了很长时间,但仍然对为什么会收到此错误感到困惑。我的 MongoDB 没有用户/密码(完美地用于我的应用程序)。任何帮助将不胜感激!
python - Celeryd 运行多个守护进程
我正在尝试使用带有 RabbitMQ 后端的Celery在 Fedora 上运行异步后台任务,但我发现它令人沮丧地不可靠。最大的问题是它偶尔会多次运行相同的任务,我无法诊断原因。
我认为我的代码不会多次触发任务,因为我已经通过手动启动任务(创建数据库记录)一次进行了测试,并看到创建了两个相同的记录。如果我从 Django shell 运行代码,只会创建一条记录,所以问题肯定是 Celery。
我有 3 台服务器,每台运行 celeryd,只有第一个运行 rabbitmq,所有 3 台服务器共享同一个数据库。我的第一个问题是我的 celery 设置存在问题,导致每台服务器上的 celeryd 检索并执行相同的任务。但是,芹菜文档中似乎没有任何东西可以区分单主机和多主机设置,因此假设我在我的 settings.py 中为每个服务器指定了正确的 BROKER_HOST/PORT/USER/PASSWORD/VHOST,它应该“只是与多个主机一起工作”。它是否正确?
我的另一个想法是我可能会以某种方式运行 celeryd 的多个实例,尽管我不确定如何检查这一点。两台服务器正在运行 Fedora 13,当我运行时,ps aux | grep .*.py
我得到:
这是否表明正在运行 3 个单独的 celeryd 实例?如果是这样,这是一个错误,我应该杀死其中的 2 个吗?
我的第三台服务器运行 Fedora 17,它具有不同的服务框架。当我跑步时,systemctl status celeryd.service
我得到:
我不确定如何解释这一点。“活动”通常表示它正在运行,但“退出”通常意味着它没有运行。当我跑步时,ps aux | grep .*celery.*
我只得到:
那么这是否意味着 celeryd 没有运行,还是我应该寻找其他东西?
编辑:基于这个答案,我认为这 3 个进程可能是默认的。
python - 将 celeryd_multi 作为守护进程运行
我将 celery 3.0.11 和 djcelery 3.0.11 与 python 2.7 和 django 1.3.4 一起使用。我正在尝试将 celeryd 作为守护进程运行,并且我已按照http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html的说明进行操作
当我使用带有 python(非 django)配置的链接中描述的 celeryd 运行工作人员时,守护程序出现了。
当我运行python manage.py celery worker --loglevel=info
用于测试工作人员的工作人员时,它们运行良好并开始使用消息。
但是当我使用 django 配置运行 celeryd 时manage.py celeryd_multi
,我只收到一条消息,上面写着
但是我没有看到任何守护进程在运行,而且我的消息显然没有被消耗。有一个空的日志文件(在 celeryd 配置文件中配置的那个)。我也用一个非常基本的 django 项目尝试过这个,我得到了相同的结果。
我想知道我是否缺少任何基本配置。由于我没有收到任何错误并且我没有任何日志,所以我被卡住了。用 sh-x 运行它也没有任何特别之处。以前有没有人经历过这种情况,或者有人对我可以尝试什么有任何建议?
谢谢,
django - 在同一台服务器上运行多个 Django Celery 网站
我使用 apache2 虚拟服务器在同一台服务器上运行多个 Django/apache/wsgi 网站。而且我想使用 celery,但是如果我为多个网站启动 celeryd,所有网站都将使用我启动的最后一个 celeryd 实例的配置(日志、数据库等)。
有没有办法使用多个 Celeryd(每个网站一个)或一个 Celeryd 用于所有这些?似乎它应该是可行的,但我不知道如何。