我正在使用protocol-bufferspythonlib发送数据,但它有一些问题,所以Traceback(mostrecentcalllast):File"test_message.py",line17,inptask.task=taskFile"build\bdist.win32\egg\google\protobuf\internal\python_message.py",line513,insetterAttributeError:Assignmentnotallowedtocompositefield"_task"inprotocolmessageobject.src如下:
我使用Celery(3.0.15)和Redis作为代理。是否有一种直接的方法可以查询Celery队列中存在的具有给定名称的任务的数量?作为后续,有没有办法取消Celery队列中存在的所有具有给定名称的任务?我已经通过MonitoringandManagementGuide并且在那里看不到解决方案。 最佳答案 #Retrievetasks#Reference:http://docs.celeryproject.org/en/latest/reference/celery.events.state.htmlquery=celery.ev
在开发中,运行celeryd以及Django开发服务器有点麻烦。例如,是否可以要求celery在开发过程中同步运行任务?还是类似的? 最佳答案 是的,您可以通过在设置中设置CELERY_TASK_ALWAYS_EAGER=True来做到这一点。(常量以前称为CELERY_ALWAYS_EAGER)http://docs.celeryproject.org/en/latest/userguide/configuration.html#task-execution-settings 关于py
我正在使用Celery独立(不在Django中)。我计划在多台物理机器上运行一种工作任务类型。该任务执行以下操作接受XML文档。转换它。使多次数据库读取和写入。我使用的是PostgreSQL,但这同样适用于使用连接的其他存储类型。过去,我使用数据库连接池来避免在每个请求上创建新的数据库连接或避免连接打开时间过长。但是,由于每个Celery工作人员都在单独的进程中运行,我不确定他们实际上如何能够共享池。我错过了什么吗?我知道Celery允许您保留从Celery工作人员返回的结果,但这不是我在这里想要做的。根据处理的数据,每个任务可以执行多个不同的更新或插入。从Celeryworker中访
我正在使用celery,我有几个任务需要按顺序执行。例如我有这个任务:@celery.taskdeftprint(word):printword我想做这样的事情:>>>chain(tprint.s('a')|tprint.s('b'))()然后我得到TypeError:tprint()只需要1个参数(给定2个)。和chord一样,在这种情况下,我需要在一组任务之后执行一个任务:>>>chord([tprint.s('a'),tprint.s('b')])(tprint.s('c'))那么如何处理这种情况呢?我不关心每个任务的结果,但它们需要按顺序执行。添加第二个参数不起作用:@cele
我正在尝试设置Django-Celery。我正在学习教程http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html当我运行时$pythonmanage.pyceleryworker--loglevel=info我明白了[Tasks]/Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133:UserWarning:Usingsettings.DEBUGleadstoamemoryleak,
Celery似乎没有正确处理异常。如果我有任务:deferrorTest():raiseException()然后我打电话r=errorTest.delay()In[8]:r.resultIn[9]:r.stateOut[9]:'PENDING'它会像这样无限期地挂起。去检查日志显示错误是在任务中抛出(如果你想要消息,问),我知道后端和一切都设置正确,因为其他任务正常工作并正确返回结果.为了在Celery中捕获异常,我需要做一些奇怪的事情吗?/Celery版本是3.0.13,broker是我本地机器上运行的RabbitMQ 最佳答案
我最近切换到Celery3.0。在此之前,我使用的是Flask-Celery为了将Celery与Flask集成。虽然它有很多问题,比如隐藏一些强大的Celery功能,但它允许我使用Flask应用程序的完整上下文,尤其是Flask-SQLAlchemy。在我的后台任务中,我正在处理数据和SQLAlchemyORM来存储数据。Flask-Celery的维护者已经放弃了对该插件的支持。该插件在任务中腌制Flask实例,因此我可以完全访问SQLAlchemy。我试图在我的tasks.py文件中复制此行为,但没有成功。您对如何实现这一点有任何提示吗? 最佳答案
让我们举一个简单的Django示例。app/models.pyfromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUserclassUserProfile(models.Model):user=models.OneToOneField(User)token=models.CharField(max_length=32)app/views.pyfromdjango.httpimportHttpResponsefromdjango.views.decorators.csrfimportcsrf_exemptfromfor
考虑到Celery已经是运行任务队列的堆栈的一部分(即,它不仅仅是为了运行crons而添加的,恕我直言,这似乎有点矫枉过正)。作为crontab的替代品,它的“周期性任务”功能如何带来好处?具体找以下几点。crontab的主要优点/缺点celery比crontab更好的用例Django特定用例:Celery与crontab运行基于django的周期性任务,当celery已作为django-celery包含在堆栈中以对django任务进行排队时。 最佳答案 我一直在将cron用于生产网站,并在当前项目中切换到celery。比起cron