gpt4 book ai didi

c++ - 使用 Redis 从 C++ 触发 Celery 任务

转载 作者:IT王子 更新时间:2023-10-29 06:14:33 25 4
gpt4 key购买 nike

我们有一个设置,其中我们有一个用 Django 编程的 Web 前端和一个用 C++ 编写的后端为我们解析数据。前端将 CeleryRedis 结合用于异步任务。

因为在某些情况下会很方便,所以今天我想知道是否可以从 C++ 中触发一个 Celery 任务。

因为 C++ 有一个 Redis 客户端,我很确定这是可能的,如果正确的消息被发送到 Redis 但是,我无法在任何地方找到这方面的任何信息。

我的下一步是尝试从 Celery 源代码中挖掘出所需的信息,但在此之前:

有没有人有任何关于这个主题的信息可以帮助我或让我开始,或者甚至有人以前做过这个?

感谢任何帮助。 (另外,如果您有理由认为这行不通。)

谢谢。

最佳答案

我也有类似的需要从 logstash 触发 celery 任务。基本上,我必须创建一条看起来像这样的消息:

{
"body": "base_64_encoded_string (see below)",
"content-type": "application/json",
"properties": {
"body_encoding": "base64",
"correlation_id":"f009c9e0-0ca6-42a6-a046-3d0e53e06060",
"reply_to":"e1eb91f0-6780-4c34-b633-7ef9a46baf5e",
"delivery_mode":2,
"delivery_tag": "7788b924-a7fe-4c9a-839e-1c7ca602dbba",
"delivery_info": {
"priority":0,
"routing_key":"default",
"exchange":"default"
}
}
}

在这种情况下,解码后的正文转换为:

{
"args": ["meta_val","doc_value"],
"task":"goldstone.compliance.tasks.process_fim_event",
"id":"23deb69e-49c1-4a61-8639-d4627d0fc591"
}

如果你的任务有 kwargs,你可以在你的 body 中添加一个 kwargs: {"key": "value", ...}

map 上方的正文触发名为 process_fim_event 的任务。任务定义如下:

@task()
def process_fim_event(meta, doc):
...

关于c++ - 使用 Redis 从 C++ 触发 Celery 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com