当我运行syncdb时,我注意到很多表创建如下:
django-kombu提供传输,因此它与实际队列无关.即使我运行任务,我仍然看不到这些表中没有填充任何内容.这些表用于什么?仅用于监控 - 如果我启用它?
如果是这样,如果我查找AsyncResult(),我猜这实际上是通过django-kombu表而不是djcelery查找任务结果吗?
谢谢.
我想在我的项目中使用django-celery
在settings.py我有
CELERY_RESULT_BACKEND = "amqp"
Run Code Online (Sandbox Code Playgroud)
服务器很好用
python manage.py celeryd --setting=settings
Run Code Online (Sandbox Code Playgroud)
但是如果我想从延迟的任务中访问结果,我会收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\celery\result.py", line 108, in ready
return self.status in self.backend.READY_STATES
File "C:\Python27\lib\site-packages\celery\result.py", line 196, in status
return self.state
File "C:\Python27\lib\site-packages\celery\result.py", line 191, in state
return self.backend.get_status(self.task_id)
File "C:\Python27\lib\site-packages\celery\backends\base.py", line 404, in _is
_disabled
raise NotImplementedError("No result backend configured. "
NotImplementedError: No result backend configured. Please see the documentation
for more information.
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为当我刚刚运行celeryd(使用相同的芹菜设置)时,它运行得很好.以前有人遇到过这个问题吗?
提前致谢!
我有一个Django站点的一小部分,它保持两个用户之间的主持聊天会话的状态.基本上,第一个用户讲3分钟(没有其他人可以),然后第二个用户说话,然后是30秒暂停,并且该过程再重复一次.我目前正在使用数据库和"RoomState"模型来管理房间的当前状态(谁可以说话等).状态转换受到客户端每隔10秒向我的一个视图发送"ping"AJAX POST消息的影响,该消息检查是否需要更改状态.
这有效,但肯定会感到hacky.我想知道是否有比django-celery + rabbitmq更轻量级的东西来管理计时器上的短期背景任务.我意识到web/Django的本质是无状态的,但我只是想看看是否有人有一个简单的建议来以更可靠的方式管理状态转换.
我一直收到这个错误......
[2012-06-14 11:54:50,072: ERROR/MainProcess] Hard time limit (300s) exceeded for movies.tasks.encode_media[14cad954-26e2-4511-94ec-b17b9a4149bb]
[2012-06-14 11:54:50,111: ERROR/MainProcess] Task movies.tasks.encode_media[bc173429-77ae-4c96-b987-75337f915ec5] raised exception: TimeLimitExceeded(300,)
Traceback (most recent call last): File "/srv/virtualenvs/filmlib/local/lib/python2.7/site-packages/celery/concurrency/processes/pool.py", line 370, in _on_hard_timeout raise TimeLimitExceeded(hard_timeout)
TimeLimitExceeded: 300
Run Code Online (Sandbox Code Playgroud)
即使我有CELERYD_TASK_TIME_LIMIT = 86400和CELERYD_TASK_SOFT_TIME_LIMIT = 86400我的settings.py项目.有谁知道为什么它仍然默认为300s?
谢谢
我一直在本地使用花,它似乎很容易设置和运行,但我看不出如何在生产环境中设置它.
特别是,如何添加身份验证以及如何定义访问它的URL?
如何使用django与Elastic Benastalk,它也只能在主节点上通过芹菜运行任务?
django amazon-web-services celery django-celery amazon-elastic-beanstalk
我有一个小脚本,将任务排入队列.此脚本生成大量数据库查询以获取应入队的项目.我面临的问题是,芹菜工人一旦被剧本排队就开始接收任务.这是正确的,这是芹菜应该工作的方式,但这往往导致我的脚本和芹菜工人之间的僵局.
有没有办法可以从脚本中排除我的所有任务,但延迟执行直到脚本完成或直到固定的时间延迟?
我在芹菜或django-芹菜的文件中找不到这个.这可能吗?
目前作为一个快速修复我想到将要处理的所有项目添加到列表中,当我的脚本完成所有查询后,我可以简单地遍历列表并将任务排队.也许这会解决问题,但是当你有数千个物品入队时,这可能是一个坏主意.
你如何诊断为什么manage.py celerybeat不执行任何任务?
我通过supervisord运行celerybeat命令:
/usr/local/myapp/src/manage.py celerybeat --schedule=/tmp/celerybeat-schedule-myapp --pidfile=/tmp/celerybeat-myapp.pid --loglevel=INFO
Run Code Online (Sandbox Code Playgroud)
Supervisord似乎运行celerybeat就好了,日志文件显示:
[2013-06-12 13:17:12,540: INFO/MainProcess] Celerybeat: Starting...
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new __version__ field
[2013-06-12 13:17:12,571: WARNING/MainProcess] Reset: Account for new tz field
[2013-06-12 13:17:12,572: WARNING/MainProcess] Reset: Account for new utc_enabled field
Run Code Online (Sandbox Code Playgroud)
我有几个定期任务显示为启用http://localhost:8000/admin/djcelery/periodictask,应该每隔几分钟运行一次.但是,celerybeat日志从不显示正在执行的任何内容.为什么会这样?
所以我已经为此寻找了很多,但找不到一个好的答案.我正在使用Celery 3.1.7和Django 1.5.1.,没有django-celery包,因为较新版本的Celery不再需要它.我设法使用RabbitMQ设置任务并执行它们.一切都在应有的地方.但是,我正在将它整合到一个现有的,相当大的Django项目中.在那里我们指定了几个Django设置文件,而不仅仅是一个.我们根据环境运行不同的一个,例如一个用于本地机器,一个用于服务器.我的问题是,我似乎无法从芹菜工作者中追踪哪个设置文件是"活动的",芹菜工作者在我的项目根目录中运行celery.py文件(如文档所指定).那里的文档需要指定Django设置文件,如下所示:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', "project.settings.server")
Run Code Online (Sandbox Code Playgroud)
现在这个工作,但如果我在本地移动东西我需要改变它settings.local以使其工作,并且每次.像在标准Django文件中那样在运行时读取设置对象不起作用,因为芹菜工作者在不同的进程中执行.那么,使用这种情况,有没有人知道如何从芹菜工人动态获取活动的Django设置文件?或者也许在启动芹菜工人时将其作为变量传递?(比如Django等--settings = project.settings.local)谢谢!
django-celery ×10
django ×9
celery ×7
python ×5
ajax ×1
asynchronous ×1
celerybeat ×1
flower ×1
kombu ×1
rabbitmq ×1