【发布时间】:2015-12-18 08:34:41
【问题描述】:
我们有一个设置,我们有一个用Django 编写的Web 前端和一个用C++ 编写的为我们解析数据的后端。
前端将Celery 与Redis 结合用于异步任务。
由于在某些情况下会很方便,所以我今天想知道是否可以从C++ 中触发Celery 任务。
由于C++ 有一个Redis 客户端可用,我很确定这是可能的,如果将正确的消息发送到Redis,但是,我无法在任何地方找到有关此的任何信息.
我的下一步是尝试从Celery 源代码中挖掘所需的信息,但在此之前:
有没有人有关于这个主题的任何信息可以帮助我或让我开始,或者甚至有人以前做过这个?
感谢任何帮助。 (另外,如果你有理由说明这不起作用。)
谢谢。
【问题讨论】:
-
“我无法在任何地方找到有关此的任何信息”,您所说的“这个”是什么意思,究竟要向 Redis 发送哪些消息?检查 Django 应用程序的源代码应该清楚这一点(我想 Django 应用程序将一些东西发送到一个队列,一个 C++ 程序监视该队列并处理它,而 Django 应用程序接收结果)。
-
这里的'this'是指消息的格式或有关使用消息的任何信息。当然,这些信息应该在 celery 源中可用,但在我深入研究之前,我希望在某个我根本无法找到的地方有一个文档。
-
Tim,Redis 使用的底层通信协议记录在 redis.io/topics/protocol,它并不复杂(基本上是 TCP/IP 上的文本)。许多编程语言的客户端多种多样,它们会为你讨论这个协议(redis.io/clients,但你可能已经知道了)。因此,如果您想从 C++ 程序中命令 Celery,您可能必须从该 C++ 程序中将一些消息输入到 Redis 实例中。问题是:究竟是什么信息。如果您知道,您可以使用 TCP/IP 或 Redis 客户端库来输入它。
-
是的,这是我的问题。我知道这些信息可以在芹菜源的某个地方获得,但我希望它也记录在其他地方。显然情况并非如此,所以我将开始挖掘。
-
我们从 erlang 触发 celery 任务。消息格式没有完整记录 - 你必须阅读 celery 源代码才能理解格式 - 开始工作并不难
标签: c++ django asynchronous redis celery