草庐IT

Celerybeat

全部标签

redis - 具有 Redis 代理的 celery worker 无法执行 Django 任务

最近我正在通过开发自己的Reddit克隆(在ubuntu14.04LTS上)学习Python(2.7)/Django(1.5)。我正在尝试将Celery(3.1)与Redis结合起来,使用它定期运行排名算法作为一项任务(在我的本地设置上)。但不幸的是,我无法让这个简单的任务执行一次!你能帮我发现我做错了什么吗?这是我的目录结构:-unconnectedreddit(manage.pyishere)-links(tasks.py,models.py,views.py,admin.py)-unconnectedreddit(celery.py,__init.py___,settings.p

python - Celery worker 进入无限启动和关闭循环

几年来,我一直在Django项目中使用celery(python中的异步任务队列)作为结果后端和代理-今天我尝试将后端/代理切换到AWS的ElastiCacheRedis,但是celeryworker进入无限的启动和关闭循环,如下面的日志文件所示。我还从运行celery的同一台机器成功连接到Redis实例,并成功完成了一些基本的SET和GET操作。我当前的设置是:操作系统:Ubuntu14.04python2.7.6celery3.1.17昆布3.0.37台球3.3.0.23命令:celeryworker--concurrency=3--queues=general--events--

django - Celery 和 Celerybeat 正在运行,但不运行任务

我已经在本地服务器上检查了我的代码,我确信我的代码一切正常。所以服务器配置似乎有问题。我有一个linux服务器(Ubuntu16.04)并安装了nginx、redis……我还为celery和celerybeat创建了配置文件,如下所示:/etc/init.d/celeryd/etc/default/celeryd/etc/init.d/celerybeat/etc/default/celerybeat我检查了它们的状态,它们都在运行,但是当我检查beat.log时,它什么也没做,只显示“正在启动...”celery文件:#NamesofnodestostartCELERYD_NODES

python - CELERYBEAT_SCHEDULE 在你的项目中放在哪里?

我多次阅读了几页Google搜索结果,我对如何布局我的项目感到非常困惑。我已经设法让Celerybeat使用periodic_task装饰器工作,但那是depreciatedandisbeingremoved.据我了解,thedocs建议CELERYBEAT_SCHEDULE是替代品。我已经完全按照所示创建了一个文件,但还没有弄明白:如何命名?放在哪里?我发现很难找到在非Django项目中使用Celery的正确方法。 最佳答案 thedocs有点令人困惑让它看起来像你的CELERYBEAT_SCHEDULE是一个单独的文件。实际上,

python - Django/djcelery 1.8.2 AppRegistryNotReady : Translation infrastructure cannot be initialized

我收到以下错误:File"/Library/Python/2.7/site-packages/Django-1.8.2-py2.7.egg/django/utils/translation/trans_real.py",line164,in_add_installed_apps_translations"Thetranslationinfrastructurecannotbeinitializedbeforethe"django.core.exceptions.AppRegistryNotReady:Thetranslationinfrastructurecannotbeinitial

python - celery 节拍时间表 : run task instantly when start celery beat?

如果我使用timedelta(days=1)创建一个celerybeat时间表,第一个任务将在24小时后执行,引用celerybeat文档:Usingatimedeltafortheschedulemeansthetaskwillbesentin30secondintervals(thefirsttaskwillbesent30secondsaftercelerybeatstarts,andthenevery30secondsafterthelastrun).但事实是,在很多情况下,调度程序在启动时运行任务实际上很重要,但我没有找到允许我在celery启动后立即运行任务的选项,我不是在

python - celery 自动重新加载不起作用

我正在使用Celery3.1.16代理(运行RabbitMQ)和多个Celeryworker,celeryd通过主管守护。问题在于任务更新。当我更新我的tasks.py文件时,celeryworker运行旧代码。Celery启动命令:/home/my_project/bin/celery-B--autoreload--app=my_app.celery:appworker--loglevel=INFO我在djangosettings.py中包含任务文件:CELERY_IMPORTS=['my_app.tasks']pyinotify已安装并工作(我猜是这样),celery日志的一部分:

python - 用于 elasticbeanstalk 上自动缩放的 django 应用程序的多个 celerybeat 实例

我正在尝试找出构建Django应用程序的最佳方法,该应用程序使用Celery在自动扩展的AWSElasticBeanstalk环境中处理异步和计划任务。到目前为止,我只使用了带有Celery+Celerybeat的单实例ElasticBeanstalk环境,而且效果非常好。但是,我希望在我的环境中运行多个实例,因为时不时有一个实例崩溃,并且需要很长时间才能备份该实例,但我无法将当前架构扩展到多个实例,因为Celerybeat应该只在所有实例中运行一次,否则Celerybeat安排的每个任务都将提交多次(环境中的每个EC2实例一次)。我已经阅读了多种解决方案,但它们似乎都存在不适合我的问

python - celery 节拍在同一时间间隔组下安排多个任务

我正在尝试设置每分钟都运行的两个任务。有什么办法可以将它们组合在一起运行吗?我在celeryconfig.py中指定了CELERYBEAT_SCHEDULE,如下所示:CELERYBEAT_SCHEDULE={'every-minute':{'task':'tasks.add','schedule':crontab(minute='*/1'),'args':(1,2)},}所以如果我想运行两个任务,我会期待这样的事情吗?CELERYBEAT_SCHEDULE={'every-minute':{'task':['tasks.add','task.multiply'],'schedule'

python - 本地主机上的 Django/Celery 多个队列 - 路由不起作用

我关注了celerydocs在我的开发机器上定义2个队列。我的celery设置:CELERY_ALWAYS_EAGER=TrueCELERY_TASK_RESULT_EXPIRES=60#1minsCELERYD_CONCURRENCY=2CELERYD_MAX_TASKS_PER_CHILD=4CELERYD_PREFETCH_MULTIPLIER=1CELERY_CREATE_MISSING_QUEUES=TrueCELERY_QUEUES=(Queue('default',Exchange('default'),routing_key='default'),Queue('feed