问题标签 [celerybeat]
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 - 芹菜节拍 - 每个任务不同的时区
我正在使用 celery beat 来安排一些任务。我可以使用 CELERY_TIMEZONE 设置来安排使用 crontab 计划的任务,它会在上述时区的计划时间运行。
但我希望能够在同一个应用程序(单个 django settings.py)中为不同的时区设置多个此类任务。我知道在计划任务时哪个任务需要在哪个时区运行。
是否可以为每个任务指定不同的时区?
我将 django (1.4) 与 celery (3.0.11) 和 django celery (3.0.11) 一起使用。
我查看了djcelery.schedulers.DatabaseScheduler
该类,它是基类,但我无法弄清楚时区的使用方式和位置。我可以编写一个自定义调度程序,让每个作业在不同的时区运行吗?
谢谢,
django - Django 1.6 + RabbitMQ 3.2.3 + Celery 3.1.9 - 为什么我的 celery 工人死于:WorkerLostError:工人过早退出:信号 11(SIGSEGV)
这似乎解决了一个非常相似的问题,但并没有给我足够的洞察力:https ://github.com/celery/billiard/issues/101 听起来尝试非 SQLite 数据库可能是个好主意。 ..
我的 django 应用程序有一个简单的 celery 设置。在我的settings.py
文件中,我将任务设置为运行如下:
我已按照此处的说明进行操作:http: //celery.readthedocs.org/en/latest/django/first-steps-with-django.html
我可以打开两个新的终端窗口并运行 celery 进程,如下所示:
ONE - 计划任务所需的 celery beat 进程,并将任务放入队列:
二 - 芹菜工人,应该从队列中取出任务并运行它:
然而,当任务被发送时,似乎有 50% 的时间工作人员运行任务,而另外 50% 的时间我收到以下错误:
我正在运行 Mavericks 的 Macbook Pro 上进行开发。
芹菜版本 3.1.9 RabbitMQ 3.2.3 Django 1.6
请注意,我使用的是 django-celery 3.1.9 并启用了 djcelery 应用程序。
heroku - 在 Heroku 和 Redistogo Nano 上达到的最大客户数
我在 Heroku 上使用 celerybeat 和 RedisToGo Nano 插件
有一个网络测功机和一个工人测功机
celerybeat 工作人员设置为每分钟执行一项任务。
问题是:每当我部署新的提交时,dynos 重新启动,我得到这个错误
那些日志没完没了。直到我停止两个测功机并重新启动它们。
它已经成为一个问题,因为它几乎在每次部署新提交时都会发生。
任何想法为什么会发生这种情况以及如何解决这个问题?
python - Celery Beat Windows 简单示例(不使用 Django)
我真的很难在 Windows 7 上使用 Celery Beat 设置定期任务(不幸的是,这就是我目前正在处理的问题)。将使用 celery 的应用程序是用 CherryPy 编写的,因此 Django 库在这里不相关。我正在寻找的只是一个如何在后台启动 Celery Beat Process 的简单示例。常见问题解答部分说明了以下内容,但我还没有真正做到这一点:
视窗
worker 的 -B / –beat 选项不起作用?¶
答:没错。将 celery beat 和 celery worker 作为单独的服务运行。
我的项目布局如下:
芹菜.py:
任务.py
celery_schedule.py
从命令行(从“proj”的父目录)运行“celery worker --app=proj -l info”可以很好地启动工作线程,我可以从 Python 终端执行添加任务。但是,我只是不知道如何启动节拍服务。显然,语法也可能不正确,因为我还没有通过缺少的 --beat 选项。
python - 芹菜工人从命令行工作,但不是作为守护进程,在虚拟环境中
系统信息
Ubuntu 12.04 LTS
Django 1.5.5
Python 2.7.3
芹菜 3.1.9
我在 vagrant 虚拟机(带有 puppet)上运行它,并尝试设置 celery 以将 worker 作为守护进程运行,如此处 celery docs以及此处描述的django celery setup 中所述。我正在为位于的项目使用 virtualenv
实际的项目文件位于
当使用命令行语句位于 /srv/myproj 目录中时,我已经能够毫无问题地启动工作程序和节拍调度程序。
beat 和 worker 都没有问题地启动,并且计划的任务被传递给 worker 并被执行。当我尝试将它们作为后台进程运行时,就会出现问题。我正在使用 /etc/init.d/ 中的celery github repo中的脚本,并在 /etc/default 中的 celeryd 和 celerybeat 文件中使用以下配置设置
尝试使用 sudo 运行服务
导致抛出错误消息,我相信这是因为它使用的是位于 usr/lib 中的 python 而不是 virtualenv 中的 python。抛出的错误是无法导入名称(该包存在于 virtualenv 中但不是全局存在的,因此我的假设)。
我还注意到,在 Running the worker as a daemon 中指出,worker 应该作为非特权用户运行,并且您应该像使用 multi 或 --detach 命令一样启动worker 和beat。这样我就能够启动工作程序(不是节拍),但是所有 .log 和 .pid 文件都是在我当前的目录中创建的,而不是我在 /etc/default/celeryd 配置文件中指定的位置。
有没有人有让芹菜在虚拟环境中工作的解决方案?我觉得我真的很接近并且忽略了配置的一些简单部分。
python - 芹菜节拍在同一时间间隔组下安排多个任务
我正在尝试设置两个每分钟都运行的任务。有没有办法将它们组合在一起运行?
我CELERYBEAT_SCHEDULE
在我的指定celeryconfig.py
如下:
所以如果我想运行两个任务,我会期待这样的事情吗?
然而它没有用。有没有这样做的标准方法?
python - 如何立即运行芹菜时间表?
我有一个配置如下的芹菜时间表:
经过测试,我发现这个时间表是在 1 小时后开始的,但我想在 1 小时后立即运行这个时间表。
python - 本地主机上的 Django/Celery 多个队列 - 路由不起作用
我按照 celery文档在我的开发机器上定义了 2 个队列。
我的芹菜设置:
我在项目的 virtualenv 中打开了两个终端窗口,并运行了以下命令:
我得到的是所有任务都由两个队列处理。
我的目标是让一个队列仅处理其中定义的一项任务,CELERY_ROUTES
并让默认队列处理所有其他任务。
我也关注了这个SO question,rabbitmqctl list_queues
returnscelery 0
和 running rabbitmqctl list_bindings
returnexchange celery queue celery []
两次。重启rabbit服务器并没有改变任何东西。
python - 芹菜节拍时间表参数
我的函数有一个参数。但我想将其称为针对一名工人的不止一个论点。我如何在“args:”中调用不同的参数,或者我必须做什么来定义多个参数。
django - Rogue CeleyBeat 流程
我们正在运行一个带有 Celery worker 的 Django 站点以及用于 cron 作业的celery beat 。有时我们会有一个流氓芹菜节拍进程,当主管重新启动或主管中的工作重新启动时会继续运行(我不确定它何时发生)。基本上,我们最终会运行两个 celery beat 进程来复制这些任务。这是一个问题,因为一项任务会发送提醒电子邮件,而当这种情况发生时,我们的很多用户都会收到重复的电子邮件。
有没有人对芹菜节拍和主管有类似的经验。有没有办法检查一个且只有一个 celery beat 进程是否一直在运行?