草庐IT

python - celery 与 RabbitMQ : AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'

我正在运行FirstStepswithCeleryTutorial.我们定义以下任务:fromceleryimportCeleryapp=Celery('tasks',broker='amqp://guest@localhost//')@app.taskdefadd(x,y):returnx+y然后调用它:>>>fromtasksimportadd>>>add.delay(4,4)但我收到以下错误:AttributeError:'DisabledBackend'objecthasnoattribute'_get_task_meta_for'我正在运行celeryworker和rabbi

python - 无法在 heroku django 中导入名称 _uuid_generate_random

我正在开展一个扫描用户gmail收件箱并提供报告的项目。我已将其部署在heroku中,规范如下:语言:Python2.7框架:Django1.8任务调度程序:Celery(Rabbitmq-bigwig用于代理url)现在当heroku执行它时,celery没有给我输出。在Heroku上推送其显示的Collectstatic配置错误。我试过使用whitenoise包还尝试执行:herokurunpythonmanage.pycollectstatic--dry-run--noinput仍然出现同样的错误。$herokurunpythonmanage.pycollectstatic--n

python - 无法在 heroku django 中导入名称 _uuid_generate_random

我正在开展一个扫描用户gmail收件箱并提供报告的项目。我已将其部署在heroku中,规范如下:语言:Python2.7框架:Django1.8任务调度程序:Celery(Rabbitmq-bigwig用于代理url)现在当heroku执行它时,celery没有给我输出。在Heroku上推送其显示的Collectstatic配置错误。我试过使用whitenoise包还尝试执行:herokurunpythonmanage.pycollectstatic--dry-run--noinput仍然出现同样的错误。$herokurunpythonmanage.pycollectstatic--n

python - 为什么使用 Celery 而不是 RabbitMQ?

据我了解,Celery是一个分布式任务队列,这意味着它唯一应该做的就是将任务/作业分派(dispatch)到其他服务器并取回结果。RabbitMQ是一个消息队列,仅此而已。但是,worker可以只监听MQ并在收到消息时执行任务。这完全实现了Celery提供的功能,那么为什么还需要Celery? 最佳答案 你是对的,你根本不需要Celery。当你设计一个分布式系统时,有很多选择,没有适合所有情况的正确方法。许多人发现让消息消费者池等待消息出现在他们的队列中、做一些工作并在工作完成后发送消息会更加灵活。Celery是一个框架,它将很多东

python - 为什么使用 Celery 而不是 RabbitMQ?

据我了解,Celery是一个分布式任务队列,这意味着它唯一应该做的就是将任务/作业分派(dispatch)到其他服务器并取回结果。RabbitMQ是一个消息队列,仅此而已。但是,worker可以只监听MQ并在收到消息时执行任务。这完全实现了Celery提供的功能,那么为什么还需要Celery? 最佳答案 你是对的,你根本不需要Celery。当你设计一个分布式系统时,有很多选择,没有适合所有情况的正确方法。许多人发现让消息消费者池等待消息出现在他们的队列中、做一些工作并在工作完成后发送消息会更加灵活。Celery是一个框架,它将很多东

python - Django Celery 日志记录最佳实践

我正在尝试让Celery日志记录与Django一起工作。我在settings.py中进行了日志记录设置以转到控制台(当我在Heroku上托管时效果很好)。在每个模块的顶部,我有:importlogginglogger=logging.getLogger(__name__)在我的tasks.py中,我有:fromcelery.utils.logimportget_task_loggerlogger=get_task_logger(__name__)这适用于记录来自任务的调用,我得到如下输出:2012-11-13T18:05:38+00:00app[worker.1]:[2012-11-1

python - Django Celery 日志记录最佳实践

我正在尝试让Celery日志记录与Django一起工作。我在settings.py中进行了日志记录设置以转到控制台(当我在Heroku上托管时效果很好)。在每个模块的顶部,我有:importlogginglogger=logging.getLogger(__name__)在我的tasks.py中,我有:fromcelery.utils.logimportget_task_loggerlogger=get_task_logger(__name__)这适用于记录来自任务的调用,我得到如下输出:2012-11-13T18:05:38+00:00app[worker.1]:[2012-11-1

python - 了解 celery 任务预取

我刚刚发现了配置选项CELERYD_PREFETCH_MULTIPLIER(docs)。默认值为4,但(我相信)我希望预取关闭或尽可能低。我现在将其设置为1,这与我要查找的内容足够接近,但仍有一些我不明白的地方:为什么预取是个好主意?我真的看不出有什么原因,除非消息队列和工作人员之间有很多延迟(在我的情况下,它们当前在同一台主机上运行,​​最坏的情况可能最终在相同数据的不同主机上运行中央)。文档只提到了缺点,但没有解释优点是什么。许多人似乎将其设置为0,希望能够以这种方式关闭预取(我认为这是一个合理的假设)。但是,0表示无限预取。为什么会有人想要无限制的预取,这不是完全消除了您最初引入

python - 了解 celery 任务预取

我刚刚发现了配置选项CELERYD_PREFETCH_MULTIPLIER(docs)。默认值为4,但(我相信)我希望预取关闭或尽可能低。我现在将其设置为1,这与我要查找的内容足够接近,但仍有一些我不明白的地方:为什么预取是个好主意?我真的看不出有什么原因,除非消息队列和工作人员之间有很多延迟(在我的情况下,它们当前在同一台主机上运行,​​最坏的情况可能最终在相同数据的不同主机上运行中央)。文档只提到了缺点,但没有解释优点是什么。许多人似乎将其设置为0,希望能够以这种方式关闭预取(我认为这是一个合理的假设)。但是,0表示无限预取。为什么会有人想要无限制的预取,这不是完全消除了您最初引入

python - Celery - 获取当前任务的任务 ID

如何从任务中获取任务的task_id值?这是我的代码:fromcelery.decoratorsimporttaskfromdjango.core.cacheimportcache@taskdefdo_job(path):"Performsanoperationonafile"#...Codetoperformtheoperation...cache.set(current_task_id,operation_results)这个想法是,当我创建任务的新实例时,我会从任务对象中检索task_id。然后我使用任务ID来确定任务是否已完成。我不想希望通过path值跟踪任务,因为该文件在任务