草庐IT

python - celery 任务状态总是挂起

总的来说,我对celery和django很陌生,所以请原谅我缺乏知识。我正在尝试运行测试以进行一些计算并等待测试完成,以便我可以确保它完成了正确的答案。这是我所拥有的:在app/tests.py中fromtasksimport*c=calculate.apply_async(args=[1])#waituntilthetaskisdonewhilenotcalculate.AsyncResult(c.id).status=="SUCCESS":printc.statepass在app/tasks.py中fromceleryimportshared_task@shared_taskdef

python - RabbitMQ:Celery 有什么 Pika 没有的?

我一直致力于让一些分布式任务通过RabbitMQ工作。我花了一些时间试图让Celery做我想做的事,但没能成功。然后我尝试使用Pika,结果一切正常,完美无缺,并且在几分钟内完成。使用Pika代替Celery有什么遗漏的吗? 最佳答案 pika提供的只是Celery所做的一小部分。Pika是用于与RabbitMQ交互的Python库。RabbitMQ是一个消息代理;在其核心,它只是向队列发送消息/从队列接收消息。它可以用作任务队列,但也可以仅用于在进程之间传递消息,而无需实际分配“工作”。Celery实现了一个分布式任务队列,可选择

python - 如何在生产中将 celery 作为守护进程运行?

我从这里的代码在/etc/defaults/中创建了一个celeryd文件:https://github.com/celery/celery/blob/3.0/extra/generic-init.d/celeryd现在,当我想将celeryd作为守护进程运行并执行以下操作时:sudo/etc/init.d/celerdy它说找不到命令。我哪里错了? 最佳答案 我不确定你在这里做什么,但这些是将celery作为守护进程运行的步骤。您在链接中引用的文件https://github.com/celery/celery/blob/3.0/

python - 开始 celery : AttributeError: 'module' object has no attribute 'celery'

我尝试从命令行启动Celery工作服务器:celery-Atasksworker--loglevel=infotasks.py中的代码:importosos.environ['DJANGO_SETTINGS_MODULE']="proj.settings"fromceleryimporttask@task()defadd_photos_task(lad_id):...我得到下一个错误:Traceback(mostrecentcalllast):File"/usr/local/bin/celery",line8,inload_entry_point('celery==3.0.12','c

python - 如何在python中用 celery 清除特定队列的所有任务?

如何在python中使用celery清除特定队列的所有计划和正在运行的任务?这些问题似乎很简单,但要补充的是,我不是在寻找命令行代码我有以下行,它定义了队列并希望清除该队列以管理任务:CELERY_ROUTES={"socialreport.tasks.twitter_save":{"queue":"twitter_save"}}在某个时间点,我想使用python代码清除quetwitter_save中的所有任务,也许使用广播功能?我找不到有关此的文档。这可能吗? 最佳答案 只是为了更新celery3.1的@SamStoelinga

python - celery (Redis)结果后端不工作

我有一个使用Django的Web应用程序,并且我正在使用Celery进行一些异步任务处理。对于Celery,我使用Rabbitmq作为代理,使用Redis作为结果后端。Rabbitmq和Redis在本地虚拟机上托管的同一个Ubuntu14.04服务器上运行。Celery工作人员正在远程机器上运行(Windows10)(没有工作人员在Django服务器上运行)。我有三个问题(我认为它们以某种方式相关!)。无论任务成功还是失败,任务都保持在“PENDING”状态。任务在失败时不会重试。尝试重试时出现此错误:rejectrequeue=False:[WinError10061]Noconne

python - 既然 Celery 4 已经放弃了 Windows 支持,那么 Windows 上的(Python 3)任务队列的最佳选择是什么?

我们在Windows上的IIS下运行Flask站点,对于进程外任务,我们使用Celery。Celery在Windows下给我们带来了一些问题,但目前我们对运行3.1.12版本感到满意,使用RabbitMQ/AMQP作为后端,可以在Windows下运行。新版Celery(4)有droppedsupportforWindows,所以我正在寻找一个可行的替代方案。RQ似乎是一个非常不错的任务队列,但它也不支持Windows(bottomofthepage)我还看到了一些似乎不太受欢迎的任务队列,例如:kuyruktasktigerhuey但不清楚这些是否支持Windows和Flask。我想知

python - celery 中的导入错误

这是我正在运行的代码:from__future__importabsolute_importfromceleryimportCelerycelery1=Celery('celery',broker='amqp://',backend='amqp://',include=['tasks'])celery1.conf.update(CELERY_TASK_RESULT_EXPIRES=3600,)if__name__=='__main__':celery1.start()当我执行上面的代码时,它给了我以下错误:ImportError:cannotimportnameCelery

python - 我应该在 Django 项目中使用 Celery 还是 Carrot?

我对应该使用哪一个有点困惑。我认为任何一种都可以,但哪一种比另一种更好或更合适?http://github.com/ask/carrot/tree/masterhttp://github.com/ask/celery/tree/master 最佳答案 如果您需要向/从AMQP消息队列发送/接收消息,请使用carrot。如果您想在多台机器上运行计划任务,请使用celery。如果你在做汤,两个都用;-) 关于python-我应该在Django项目中使用Celery还是Carrot?,我们在S

python - celery 停止执行链

我有一个定期执行的check_orders任务。它创建一组任务,以便我可以计算执行任务所花费的时间,并在它们全部完成时执行某些操作(这是res.join[1]和grouped_subs的目的)分组的任务是成对的链式任务。我想要的是当第一个任务不满足条件(失败)时不执行链中的第二个任务。我一生都无法弄清楚这一点,我觉得这对于作业队列管理器来说是非常基本的功能。当我尝试我在[2]之后注释掉的东西时(引发异常,删除回调)......我们由于某种原因卡在check_orders中的join()上(它破坏了组)。我已经尝试将所有这些任务的ignore_result设置为False,但它仍然不起作