草庐IT

celery_state

全部标签

python - Celery/Redis 一些(很多)消息被丢弃

我使用带有Redis(v.2.2.2)的Celery(2.2.4)作为我的消息代理。知道什么会导致某些(大多数)消息随机且不一致地丢失吗? 最佳答案 看起来合乎逻辑的唯一原因是您超出了redis实例使用的内存。所以一些消息被丢弃(使用LRU策略(?))。 关于python-Celery/Redis一些(很多)消息被丢弃,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5225899

django - Redis + Node.js + Socket.io + Django/Celery 设置中的奇怪行为。断开连接的套接字仍然接收消息

我遇到了一个奇怪的问题,我自己无法解决。我建立了一个设置,通过Django/Celery周期性任务发送JSON序列化消息。此任务通过Redis与node.js服务器通信。Node.js通过socket.io处理与网络浏览器的通信。Django/Celery任务@periodic_task(run_every=crontab())#everyminutedefprocess_channels():r=redis.StrictRedis(host='localhost',port=6379,db=0)foriinxrange(1,21):#1..20data_dict={}data_dic

redis - celery 不尊重 BROKER_URL

我尝试在stackoverflow和google上搜索相关问题,但没有找到可以解决我的问题的东西。我在/etc/default/celeryd配置中将BROKER_URL设置为redis。BROKER_URL="redis://localhost:6379"但是当我启动/etc/init.d/celerydstart它说:“错误/MainProcess]消费者:无法连接到amqp://guest@127.0.0.1:5672//:”我还在文档页面上看到了有关celeryconfig.py的信息。我不明白为什么我应该有两个配置文件?/etc/default/celeryd用于配置。

django - 无法在 OS X Mavericks 上启动 Celery

我想在运行OSX10.9.5的Mac上开发的Django1.6.2应用程序中使用Celery和Redis。首先,我正在研究FirstStepswithCelery文档。但是,当我尝试使用以下命令按照文档中所示启动Celery时:celery-Atasksworker--loglevel=info我收到这个错误:[:ERROR/MainProcess]consumer:Cannotconnecttoredis://127.0.0.1:6379//:Error61connectingto127.0.0.1:6379.Connectionrefused..Tryingagainin2.00s

python - 将字符串中的字节发送到 Redis,以便将其用作 Celery 任务的参数

我想使用Redis作为代理将字符串中的字节发送到Celery的任务,但我收到如下所示的错误:[2017-06-1721:27:13,826]ERRORinapp:Exceptionon/endpoint_method[POST]Traceback(mostrecentcalllast):File"/Users/developer/my_project/venv/lib/python2.7/site-packages/flask/app.py",line1982,inwsgi_appresponse=self.full_dispatch_request()File"/Users/deve

python - 如何从以前的 celery 任务中产生 celery 任务?

我可能用错了celery。但是我正在开发的聊天机器人需要celery和redis来完成异步任务。这是我正在使用的框架:http://microsoftbotframework.readthedocs.io/en/latest/asynctasks/.我的特定用例目前要求我永远运行celery任务,并在两者之间等待一段任意时间,范围从30分钟到3天不等。像这样的东西@celery.taskdefmyAsyncMethod():whiletrue:timeToWait=getTimeToNextAlarm()sleep(timeToWait)sendOutMessages()基本上,我有一

python - celery 没有同时执行任务

我是celery的新手,如果需要更多信息,请在评论中告诉我。我有大约3000个任务在redis中排队,我想在多个线程上同时执行这些任务,经过一些研究我最终使用eventlet进行线程池并将并发设置为500,就像这样celeryworker-A-Peventlet-c500但是当我检查celery花时,有许多celery没有使用的空闲线程可用关于如何利用这些空闲线程并使任务更快的任何想法?如果可能的话,请推荐一本关于使用celery的好书 最佳答案 这些线程中的每一个都将运行500个eventlet。如果您的3000个任务是短期的,它

redis - celery :让 worker 每秒执行x个任务

我正在使用Celery执行发送邮件任务。发送一封电子邮件对应一项任务。我使用的SMTP服务器每秒只需要24个发送邮件请求。如果超过限制,则会抛出错误。我如何控制我的工作人员每秒只发送24(或x)个任务。 最佳答案 Celery让您可以通过ratelimits控制它 关于redis-celery:让worker每秒执行x个任务,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5709

python - 一个 Celery 击败许多 worker ?

我想运行一个由多个工作人员共享的DatabaseScheduler支持的celerybeat实例。Redis是代理。是只有一个worker收到定时任务,还是所有worker都会收到定时任务?谢谢! 最佳答案 您应该运行celerybeat调度程序的单个实例,然后在它调度任务的时间到来时,将一条消息放入消息代理队列(在您的例子中为Redis)。默认情况下,队列是“celery”,但可以根据您的代码/设置为每个任务或每个任务实例配置。当您启动一个或多个worker时,您可以根据需要告诉每个worker要收听哪些队列,但默认情况下它们只会

python - Celery:Redis 作为代理离开任务元键

我有一个以Redis作为代理的celery应用。代码由以下循环组成:running=[]res=add.apply_async([1,2],queue='add')running.append(res)whilerunning:r=running.pop()ifr.ready():printr.get()else:running.insert(0,r)一切正常,但是当我redis-cli进入redis并执行keys*我看到一堆celery-task-meta键。他们为什么不清理?那些是干什么用的?--[编辑]我读过CELERY_TASK_RESULT_EXPIRES设置。Redis中的