草庐IT

celery_tasks

全部标签

python - celery 与 djcelery

在我的django项目上尝试设置celery时,我对这两个应用程序之间的差异感到困惑。两者有什么区别?在网上阅读教程时,我看到它们都在使用,但我不确定哪个最适合我。看起来djcelery有点像celery,但为django量身定做?但是celery不需要包含在已安装的应用程序中,而djcelery需要。谢谢 最佳答案 Django-celery是一个为django提供Celery集成的项目,但不再需要它。您不必再安装django-celery。由于开箱即用地支持3.1版django。所以要安装celery你可以使用pip:pipin

python - celery worker 在调用 retry() 后不重试任务

我有一个任务:@celery.task(name='request_task',default_retry_delay=2,acks_late=True)defrequest_task(data):try:ifsome_condition:request_task.retry()exceptExceptionase:request_task.retry()我使用带有mongodb代理和mongodb结果后端的celery。当调用任务的retry()方法时,无论是从条件语句还是在捕获异常之后,任务都不会重试。在工作人员的终端中,我收到这样的消息:[2012-08-1019:21:54,9

python - Windows 的 Celery 任务超时/时间限制?

我有一个用Flask编写的Web应用程序,目前正在Windows上的IIS上运行(不要问...)。我正在使用Celery来处理一些异步处理(访问慢速数据库并生成报告)。但是,在尝试设置一些错误处理行为时,我在docs中遇到了这个问题:"TimelimitsdonotcurrentlyworkonWindowsandotherplatformsthatdonotsupporttheSIGUSR1signal."由于数据库可能会变得非常慢,我真的很希望能够为我的任务指定超时行为,并让它们稍后在数据库可能没有如此任务时重试。由于各种原因,该应用必须从Windows提供,是否有任何解决方法?非

python - 运行连接到 Django 测试数据库的 Celery worker

背景:我正在开展一个项目,该项目使用Celery来安排将在未来特定时间运行的任务。这些任务插入最终状态机的状态向前发展。这是一个例子:计划在2天内向用户发送future提醒。当该计划任务运行时,会发送一封电子邮件,并且FSM会前进到下一个状态下一个状态是安排提醒在另外两天运行当这个任务运行时,它会发送另一封邮件,高级状态等等...我目前正在按照thisSOanswer的建议使用CELERY_ALWAYS_EAGER在测试中使用该技术的问题在于,本应在单独线程中运行的任务代码与调度它的线程在同一线程中运行。这会导致FSM状态无法正确保存,并且难以测试。我无法确定究竟是什么导致了它,但似乎

python - 收到 celery 任务但未执行

我有收到但不会执行的Celery任务。我正在使用Python2.7和Celery4.0.2。我的消息代理是AmazonSQS。这是celeryworker的输出:$celeryworker-Amyapp.celeryapp--loglevel=INFO[tasks].myapp.tasks.trigger_build[2017-01-1223:34:25,206:INFO/MainProcess]Connectedtosqs://13245:**@localhost//[2017-01-1223:34:25,391:INFO/MainProcess]celery@ip-111-11-1

python - django-celery-email 任务未执行

在解决异步电子邮件发送问题时遇到了一点困难。我想使用celery和django数据库作为后端。因为现在我唯一想使用这个队列管理工具的是电子邮件,所以我也安装了django-celery-email。按照说明,我对我的设置文件进行了这样的更新:importdjcelerydjcelery.setup_loader()INSTALLED_APPS+=('kombu.transport.django','djcelery','djcelery_email')BROKER_URL='django://'EMAIL_BACKEND='djcelery_email.backends.CeleryE

python - 如何以编程方式告诉 Celery 将所有日志消息发送到 stdout 或 stderr?

如何以编程方式打开celery日志记录?从终端,这工作正常:celeryworker-lDEBUG当我调用get_task_logger(__name__).debug('hello')时,我可以在终端中看到消息。(正在显示stdout和stderr)我什至可以importlogging并调用logger.info('hi')并查看它。(两者都有效)但是,在开发任务时,我更喜欢使用测试模块并直接调用任务函数,而不是启动整个worker。但是我看不到日志消息。我知道Celery正在将所有内容重定向到其内部设备,但我也想在stdout上查看日志消息。我如何告诉Celery将日志消息的副本发

python - celery + SQS - pycurl错误

今天我一直在尝试使用AWSSQS作为代理来设置Celery,但是在执行以下操作时:测试.pyfromceleryimportCeleryaccess_key_id='********************'secret_access_key='****************************************'broker_url='sqs://%s:%s@'%(access_key_id,secret_access_key)app=Celery('test',backend=None,broker=broker_url)@app.taskdefadd(x,y):ret

python - Django celery 连接错误 : Too many heartbeats missed

问题如何解决来自Celery的ConnectionError:Toomanyheartbeatsmissed?示例错误[2013-02-1115:15:38,513:ERROR/MainProcess]Errorintimer:ConnectionError('Toomanyheartbeatsmissed',None,None,None,'')Traceback(mostrecentcalllast):File"/app/.heroku/python/lib/python2.7/site-packages/celery/utils/timer2.py",line97,inapply_

python - Rabbitmq mgmt 上显示未知队列名称。使用 celery 时

我只创建了下表中Rabbitmq管理Webui中显示的最后2个队列名称:表的其余部分有类似哈希的队列,我不知道:1-Whocreatedthem?(Iknowitiscelery,butwhichprocess,task,etc.)2-Whytheyarecreated,andwhattheyarecreatedfor?.我注意到,当推送的消息数量增加时,那些类似哈希的消息的数量也会增加。 最佳答案 当使用celery时,Rabbitmq被用作默认的结果后端,同时也用于存储失败的错误信息任务(引发异常)。每个新任务都会在服务器上创建