gpt4 book ai didi

redis - 使用redis pub/sub连接Tornado进程

转载 作者:IT王子 更新时间:2023-10-29 06:15:53 27 4
gpt4 key购买 nike

我有两个 Tornado 进程 XYX 中的处理程序处理 post 请求,当这样的请求到达时,除了在 X 中进行更改外,我还想更改存储在 Y 中的一些变量

我想使用 Redis 的 PUB/SUB 来做到这一点。很明显,在 X 的处理程序中,我需要向“Y”订阅的 channel 发布消息。

Y 中的这个订阅应该是长期运行的,这样每当有消息发布到 channel 时,Y 中的内容就会自动更新内存中的变量。但是,我不清楚如何在 Y 中实现此订阅和由此产生的更新,因为它不可能是一个普通的处理程序。我计划为此使用异步 redis 客户端 tornado-redis,如果这有什么不同的话。

一些例子会很有帮助!

最佳答案

这不是 Redis PUB/SUB 解决方案,而是替代方案。如果您的堆栈上已经有 Redis,您不妨使用它(或者更好的消息队列)。

  1. 最简单的方法是在 Y 中为此设置一个 tornado.web.RequestHandler。当 X 需要进行更改时,让 X 向 Y 发送一个 HTTPRequest。有效负载可以是 JSON、表单-编码,二进制。

  2. 在 Y 中创建一个套接字,绑定(bind)它并添加 IOLoop.add_handler 监听该套接字并使用 callback 运行。当 X 需要进行更改时,让它连接到那个套接字。 (有效载荷可以是 JSON、二进制)。如果您需要发送消息,这将需要一个小套接字接受和读取。

不用说,两者都应该在防火墙后面。

关于redis - 使用redis pub/sub连接Tornado进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405215/

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