问题标签 [kombu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
59 浏览

python - eclipse pydev 不能与 newClassName = oldClassName 一起工作

一个kombu的例子:

它在控制台工作,但在eclipse+pydev中不能工作,问题是找不到BrokerConnection,我在kombu src中找到'BrokerConnection = Connection',kombu有一个名为Connection的类,想给它一个别名BrokerConnection,但是ecrilpse+pydev 不能很好地处理这个问题,如何解决这个问题?

0 投票
0 回答
1020 浏览

python - Python RabbitMQ 和 Kombu:心跳

我有一个 Twisted 应用程序(Python 2.7),它使用 kombu 模块与 RabbitMQ 消息服务器进行通信。

我们在关闭连接时遇到问题(可能与防火墙相关),我正在尝试实现heartbeat_check()处理此问题的方法。我在连接上设置了 10 的心跳值,并且我有一个 Twisted ,它每 5 秒LoopingCall调用一次该方法。heartbeat_check(rate=2)

但是,一旦事情进展顺利,我就会在其他所有调用中抛出一个异常heartbeat_check()(基于我在LoopingCall调用的函数中获得的日志信息,其中包括对 的调用heartbeat_check)。我尝试了各种心跳和速率值的变化,但似乎没有任何帮助。当我调试它时,heartbeat_call()它看起来像是在来回发送一些次要的消息流量,我应该在我的消息使用者中对此做出响应吗?

任何提示或指示都会非常有帮助,在此先感谢!!

道格

0 投票
3 回答
3383 浏览

django - Django/Celery 快速入门示例不起作用(工作人员没有执行任何任务)

我正在使用Django/Celery Quickstart ... 或者,我是如何学会停止使用 cron 并喜欢 celery的,而且似乎这些作业正在排队,但从未运行。

任务.py:

所以我运行芹菜:

这些任务确实在排队:

并且计数随着时间的推移而增加:

日志文件中似乎没有任何行表明正在执行任务。我期待类似的东西:

有什么建议如何诊断/调试吗?

0 投票
3 回答
1959 浏览

django - 芹菜关机

从 celery 2.4.5 升级后,我开始让 celery 随机关闭。
我在 centOS 机器上使用 celery 3.0.12、boto 2.6 和 amazon sqs 和 django 1.2.7(pip freeze dump 在底部)

我在跑步

在我启动 celery 几秒钟后,它停止(关闭),如果我查看其中一个 celery 日志,我总是会看到:

我使用 maxtaskperchild 的低值来快速重新创建关机。如果我给出更高的值,那么在关机发生之前需要更长的时间。

编辑

在尝试隔离问题时,我删除了所有定期任务。现在我只有一个周期性任务和一个基本上什么都不做的任务,但我仍然可以每次都重现这个错误。

我的 /init.d/celeryd

芹菜

我的 /default/celeryd

我的点冻结

0 投票
1 回答
110 浏览

django - 使用主题交换将消息从一种方法发送到另一种方法

最近,我一直在阅读celerykombu文档,因为我需要将它们集成到我的一个项目中。我对这应该如何工作有一个基本的了解,但是使用不同经纪人的文档示例让我感到困惑。

这是场景:

在我的应用程序中,我有两个视图ViewAViewB它们都进行了一些昂贵的处理,所以我想让它们使用 celery 任务进行处理。所以这就是我所做的。

视图.py

任务.py

到目前为止,一切正常。问题是在系统上do_task_a创建了一个txt文件,我需要在do_task_b. 现在,在该do_task_b方法中,我可以检查文件是否存在,retry如果文件不存在,则调用任务方法[这是我现在正在做的]。

在这里,我宁愿采用不同的方法(即消息传递的来源)。我想在文件创建后do_task_a发送一条消息,do_task_b而不是循环重试方法,直到创建文件。

我通读了文档celerykombu更新了我的设置,如下所示。

我被困在这里。不知道从这里去哪里。

接下来我应该怎么做才能在文件创建do_task_a中广播消息?do_task_b我应该怎么做才能do_task_b接收(消费)消息并进一步处理代码?

欢迎任何想法和建议。

0 投票
1 回答
881 浏览

jython - 无法从 jython 导入kombu

我正在尝试将 python 应用程序移植到 jython 并遇到了 jython 无法导入 kombu 的问题(在原始 python 应用程序中使用显着)。

我已经通过 pip 安装了 kombu(甚至尝试了 -U 选项来获取最新版本):

我安装了 jython 2.5.3 版,当我尝试导入 kombu 时,出现“ImportError:没有名为 kombu 的模块”错误:

任何帮助将不胜感激!

谢谢,弗林特

0 投票
1 回答
6846 浏览

django - Django 和 Celery:未导入的任务

我正在使用 Django 和 Celery 在后台运行与联系人/电子邮件解析相关的两个任务。

结构是:

settings.py 文件包含:

tasks.py 包含:

此外,在 wsgi.py 中添加

现在,我将这个应用程序托管在 WebFactional 服务器上。在我的本地主机上运行良好,但在 Django 应用程序部署在 Apache 服务器上的 WebFaction 服务器上,我得到:

但任务显示为已注册。如果我跑

我得到:

我认为这可能是一个相对的导入错误,但我认为 settings.py 和 wsgi.py 的更改会阻止这种情况。

我认为 WebFactional 支持的多个 Python 版本可能与此有关,但是我为 Python 2.7 安装了所有库,并且我还在为 2.7 运行 Django,所以应该没有问题。

使用 celeryd -l info 在 localhost 中运行,当我启动工作程序时,任务也会显示在列表中,但是当我调用任务时它不会输出错误 - 它运行良好。

谢谢

0 投票
0 回答
931 浏览

python - celery 3.0.12 typeerror :run() 为关键字参数“分离”的值获取了多个值

我想使用 celery 和 celerybeat.am 使用 celery 3.0.12 django-celery 3.0.11 kombu 2.5.3 和 billiard 2.7.3.19 python 2.6 django 1.4.2 运行定期任务。谁能告诉它哪里出错或缺少任何配置部分?

蒂亚:)

更新:task.py

设置.py

0 投票
1 回答
4993 浏览

python - 使用 Kombu 设置 Rabbit MQ 心跳

编辑:

主要问题是第 3 方 rabbitmq 机器似乎时不时地杀死空闲连接。那是我开始收到“Broken Pipe”异常的时候。获得通讯的唯一途径。恢复正常是让我终止进程并重新启动它们。我想有更好的方法吗?

--

我在这里有点迷路了。我正在连接到第 3 方 RabbitMQ 服务器以将消息推送到。时不时地,他们机器上的所有套接字都被丢弃,我最终得到一个“断管”异常。

我被告知要在我的代码中实现心跳检查,但我不确定具体如何。我在这里找到了一些信息:http: //kombu.readthedocs.org/en/latest/changelog.html#version-2-3-0但没有真正的示例代码。

我只需要在连接字符串中添加“?heartbeat = x”吗?Kombu 会做剩下的事情吗?我看到我需要在“x/2”处调用“Connection.heartbeat_check()”。我应该创建一个定期任务来调用它吗?如何重新建立连接?

我正在使用:

  • 芹菜==3.0.12
  • 海带==2.5.4

我的代码现在看起来像这样。调用一个简单的 Celery 任务将消息发送到第 3 方 RabbitMQ 服务器(删除了日志和注释以保持简短,足够基本):

感谢您的任何帮助。

0 投票
4 回答
6734 浏览

django - Django / Celery / Kombu worker 错误:收到并删除了未知消息。目的地错误?

似乎消息没有正确放入队列。

我将 Django 与 Celery 和 Kombu 一起使用,以利用 Django 自己的数据库作为代理后端。我只需要一个非常简单的 Pub/Sub 设置。它最终会部署到 Heroku,所以我使用 foreman 在本地运行。以下是相关代码和信息:

点冻结

档案

设置.py

put_message

api/tasks.py

在终端中,foreman start工作正常并显示:

最后两行不会立即显示,但会在我的 API 收到运行上述put_message部分中的代码的 POST 请求时显示。我已经尝试过使用 Kombu 完全成熟的 Producer 和 Consumer 类,结果相同。

Kombu 的 SimpleQueue 示例:http
://kombu.readthedocs.org/en/latest/userguide/examples.html#hello-world-example 芹菜文档:http ://docs.celeryproject.org/en/latest/index.html

有任何想法吗?

已编辑

--loglevel=DEBUG在 procfile 中更改为将终端输出更改为以下内容: