草庐IT

python - celery :消费者:无法连接到 amqp://guest:**@127.0.0.1:5672//:[Errno 92] 协议(protocol)不可用

我一直收到这个错误,我不知道为什么。我在Windows10上使用Ubuntu,celery过去工作正常。然后发生了一些事情,我一直收到这个错误。我使用celery文档来学习。这是任务.py:fromceleryimportCeleryapp=Celery('tasks',broker='pyamqp://guest@localhost//')@app.taskdefadd(x,y):returnx+y这是我得到的错误:[2017-08-1417:34:04,436:ERROR/MainProcess]consumer:Cannotconnecttoamqp://guest:**@127

python - Celery + Redis 问题

在我设置CELERY_ALWAYS_EAGER=False之前,我有一个在celery中按预期工作的应用程序。#mainfilejobs=get_report_jobs_from_db()forjobinjobs:out=run_job.delay(job)status,id=out.state,out.task_id#ShouldbestatusstringandUUID.save_job(job,status,id)#recordtodb#Onbadcallsstatus==idandisaUUID.#celeryfilefromfooimportdo_something,writ

python - 如何使用 Celery 和 Flask 实现缓存系统

我正在使用以下方式实现在线服务器:flaskNGINXcelerycelery用途:RabbitMQ作为代理Redis作为结果后端。我想知道是否可以使用Redis作为缓存,以避免在收到相同请求时进行大量计算。例如,如果我收到包含相同正文的POST,我想回答缓存结果。如果可以,我必须在Celery或Redis中配置它吗?我应该怎么做? 最佳答案 flask生态系统中有许多现有的扩展,可以让您轻松地做到这一点。包括Flask-Redis 关于python-如何使用Celery和Flask实现

django - apply_async 后 Celery chord 不释放 redis pubsub channel

我正在从我的django应用程序中的celery启动一个chord以响应请求。和弦正确执行,但django从未发布pub-subchannel。杀死django服务器释放channel,然后它从redis-clipubsubchannels中消失。celery4.1.1或4.2.0rc4Redis4.0.9python2.7.15在本地运行,1个celeryworker,1个api服务器在这种情况下结果并不重要(但文档说不要忽略它们)完整示例项目位于:https://github.com/awbacker/celerychord-issue点击/api/start/并在运行celery

redis - django-celery celerybeat 周期性任务每 5 秒运行一次,与间隔无关

我以前从未遇到过这个问题,尽管有一些项目使用了celerybeat和django-celery。我在后端使用了redis。出于某种原因,周期性任务每5秒运行一次,无论间隔设置为何。我知道节拍调度程序实际上会查看django-celery调度程序,因为当我禁用该任务时,它会停止运行。但是,无论我将其设置为每3小时运行一次...还是每5分钟运行一次...任务都会继续每5秒运行一次。有什么问题吗? 最佳答案 显然这是celery团队正在解决的一个新问题。https://github.com/celery/celery/issues/943

redis - 如果 celery (显然)随机忘记任务,我该怎么办?

我有一个带有sqlalchemy的flask应用程序和一个正在运行的celeryworker。我使用redis作为我的经纪人。每次有人在对话中提交新消息时,都会启动一个worker并向所有参与对话的人发送通知邮件。因此它连接到数据库并获取所有相关的电子邮件地址。不幸的是,似乎有一个随机因素决定,celery是否知道发送邮件的任务。在一些启动后它完美地工作(有时),在一些启动后它根本不工作。当它不起作用时,我得到的错误是:[2012-11-2821:42:58,751:ERROR/MainProcess]Receivedunregisteredtaskoftype'messages.se

Django celery 先进先出

所以我将这2个应用程序与RESTAPI(json消息)连接起来。一个用Django编写,另一个用Php编写。我在两边都有一个精确的数据库副本(使用mysql)。当我在其中一个上按下“提交”时,我希望将该数据保存在当前应用程序数据库中,并使用celery/redis启动cron作业以使用rest为另一个应用程序更新远程数据库。我的问题是,我如何将同一个工作人员分配给我的任务以保持FIFO顺序?我需要我的数据保持一致,FIFO非常重要。好的,我将进一步详细说明我想做的事情:所以我有这个Django应用程序,当我在填写表格后按下提交时,我的celeryworker醒来并负责获取提交的数据并发

redis - Celery 未连接到 Redis 代理 : Connection to broker lost

我正在尝试让Redis充当我在Django上安装的Celery3.0.19的代理。我看到redis-server正在端口6379上运行。当我运行一个简单的Celery测试时,我得到以下堆栈跟踪:UbuntuLucid10.0.4Celery3.0.19celery-Atasksworker--loglevel=info[2013-05-0218:56:27,835:INFO/MainProcess]consumer:Connectedtoredis://127.0.0.1:6379/0.[2013-05-0218:56:27,835:ERROR/MainProcess]consumer

python - 使用Supervisor启动Huey(Redis Celery)消费者

我目前有一个“cons.sh”文件,用于启动我的Huey(CeleryRedis的基本版本)消费者。内容如下:#!/bin/bashecho"smsbothandler"echo"-------------"echo"Waitingfortasks'"echo"StopthehandlerusingCtrl+C"PYTHONPATH=.:$PYTHONPATHhuey_consumer.pymain.huey--threads=3现在我想使用Supervisor来保持它的运行,但看起来,我不能让supervisor启动shell脚本,我必须让它启动python脚本。谁能告诉我如何使用p

python - 如何从另一个程序向 celery 添加任务?

我们在类似守护进程的程序中使用celery和redis作为代理。我们如何将来自另一个程序的任务添加到这个守护进程?有可能吗?编辑:如果描述不够清楚,有两个单独的程序,代码不同,我正在寻找除了从后一个程序导入任务之外的解决方案。 最佳答案 I'mlookingforasolutionotherthanimportingtasksfromthelatterprogram.你运气不好。celery文档提到worker和客户需要拥有相同的软件。因此,您的客户端代码需要导入一个celery任务,并负责在应用程序控制流中调用它。引用资料:Cel