我们在Windows上的IIS下运行Flask站点,对于进程外任务,我们使用Celery。Celery在Windows下给我们带来了一些问题,但目前我们对运行3.1.12版本感到满意,使用RabbitMQ/AMQP作为后端,可以在Windows下运行。新版Celery(4)有droppedsupportforWindows,所以我正在寻找一个可行的替代方案。RQ似乎是一个非常不错的任务队列,但它也不支持Windows(bottomofthepage)我还看到了一些似乎不太受欢迎的任务队列,例如:kuyruktasktigerhuey但不清楚这些是否支持Windows和Flask。我想知
这是我正在运行的代码: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
我对应该使用哪一个有点困惑。我认为任何一种都可以,但哪一种比另一种更好或更合适?http://github.com/ask/carrot/tree/masterhttp://github.com/ask/celery/tree/master 最佳答案 如果您需要向/从AMQP消息队列发送/接收消息,请使用carrot。如果您想在多台机器上运行计划任务,请使用celery。如果你在做汤,两个都用;-) 关于python-我应该在Django项目中使用Celery还是Carrot?,我们在S
我有一个定期执行的check_orders任务。它创建一组任务,以便我可以计算执行任务所花费的时间,并在它们全部完成时执行某些操作(这是res.join[1]和grouped_subs的目的)分组的任务是成对的链式任务。我想要的是当第一个任务不满足条件(失败)时不执行链中的第二个任务。我一生都无法弄清楚这一点,我觉得这对于作业队列管理器来说是非常基本的功能。当我尝试我在[2]之后注释掉的东西时(引发异常,删除回调)......我们由于某种原因卡在check_orders中的join()上(它破坏了组)。我已经尝试将所有这些任务的ignore_result设置为False,但它仍然不起作
我知道有类似的问题,比如:https://stackoverflow.com/questions/8232194/pros-and-cons-of-celery-vs-disco-vs-hadoop-vs-other-distributed-computing-packagDifferentiatecelery,kombu,PyAMQPandRabbitMQ/ironMQ但是我问这个是因为我正在寻找一个由几个用例示例支持的更特别的区别,拜托。所以,我是一个python用户,想要制作一个/两个的程序:太大而不能花费太长时间在一台机器上做,并在多台机器上处理它们。我熟悉python中的(单
我想从Celery任务返回的列表中创建一个组,这样对于任务结果集中的每一项,都会将一个任务添加到组中。这是一个解释用例的简单代码示例。???应该是上一个任务的结果。@celery.taskdefget_list(amount):#Inreality,fetchalistofitemsfromadbreturn[iforiinrange(amount)]@celery.taskdefprocess_item(item):#dostuffpassprocess_list=(get_list.s(10)|group(process_item.s(i)foriin???))我可能没有正确处理这
我在重试任务时遇到问题,这是测试任务的样子fromcelery.decoratorsimporttask@task()defadd(x,y):ifnotxornoty:raiseException("testerror")returnx+y我找不到任何关于如何重试装饰任务的文档,我只找到了以下内容:self.retry(x,y,exc=exception,countdown=30)这似乎不适用于我的情况,因为没有从该方法传递的self变量。编辑:我现在尝试以下方法无济于事:fromcelery.decoratorsimporttask@task()defadd(x,y):ifnotxo
这个问题在这里已经有了答案:HowdoIenableremotecelerydebugginginPyCharm?(10个回答)关闭6年前。我有一个带有virtualenv的现有Django项目。激活venv后,我可以使用命令celery运行Celery。这适用于Windows、OSX和Linux。我想在Windows上试用PyCharm,我可以让它运行我的Django服务器(使用项目的venv),但我也想运行Celery,所以我也可以调试它。我找不到设置PyCharm的简单、直接的指南,以便我可以调试Celery(以某种方式可以在任何平台上使用PyCharm)。
我有2种类型的任务:异步任务和计划任务。所以,这是我的目录结构:proj|--tasks|--__init__.py|--celeryapp.py=>celeryinstancedefinedinthisfile.|--celeryconfig.py|--async|||--__init__.py|||--task1.py=>fromproj.tasks.celeryappimportcelery|||--task2.py=>fromproj.tasks.celeryappimportcelery|--schedule|--__init__.py|--task1.py=>frompro
我使用Celery和Redis来运行一些后台任务,但是每次调用任务时,它都会创建一个到Redis的新连接。我在Heroku上,我的RedistoGo计划允许10个连接。我很快就达到了这个限制,并得到了“达到最大客户数”的错误。如何确保Celery在单个连接上对任务进行排队,而不是每次都打开一个新连接?EDIT-包括完整的回溯File"/app/.heroku/venv/lib/python2.7/site-packages/django/core/handlers/base.py",line111,inget_responseresponse=callback(request,*cal