草庐IT

publish-subscribe

全部标签

ruby - 如何使用 sinatra streaming api 关闭 redis 连接?

我有以下sinatra应用:require'sinatra'require'redis'require'json'classFeedStreamevent_data['data'],:by=>current_user}}.to_json\n\n"endendendendend基本上,它使用redispubsub接收其他用户发布到feed的事件,然后使用sinatrastreamingapi发送这些事件。问题是,当浏览器重新连接到提要时,redis客户端保持连接,并不断接收事件,因此redis服务器充满了无用的连接。一旦broser关闭与网络服务器的连接,我如何关闭所有这些连接?

ruby - 如何使用 sinatra streaming api 关闭 redis 连接?

我有以下sinatra应用:require'sinatra'require'redis'require'json'classFeedStreamevent_data['data'],:by=>current_user}}.to_json\n\n"endendendendend基本上,它使用redispubsub接收其他用户发布到feed的事件,然后使用sinatrastreamingapi发送这些事件。问题是,当浏览器重新连接到提要时,redis客户端保持连接,并不断接收事件,因此redis服务器充满了无用的连接。一旦broser关闭与网络服务器的连接,我如何关闭所有这些连接?

redis - 进入 "subscribe"模式后如何发出 "pub/sub"命令?

在使用redis-cli进入“pub/sub”模式后,我找不到订阅其他channel的方法。例如:$redis-cliredis>SUBSCRIBEchannel:1Readingmessages...(pressCtrl-Ctoquit)1)"subscribe"2)"channel:1"3)(integer)1当我按下Ctrl-C时,redis-cli退出而不是“pub/sub”模式。有谁知道如何解决这个问题? 最佳答案 实际上,SUBSCRIBE和PSUBSCRIBE两者都将阻止所有后续命令,因此您无法向服务器发送任何命令,而

redis - 进入 "subscribe"模式后如何发出 "pub/sub"命令?

在使用redis-cli进入“pub/sub”模式后,我找不到订阅其他channel的方法。例如:$redis-cliredis>SUBSCRIBEchannel:1Readingmessages...(pressCtrl-Ctoquit)1)"subscribe"2)"channel:1"3)(integer)1当我按下Ctrl-C时,redis-cli退出而不是“pub/sub”模式。有谁知道如何解决这个问题? 最佳答案 实际上,SUBSCRIBE和PSUBSCRIBE两者都将阻止所有后续命令,因此您无法向服务器发送任何命令,而

python - txredisapi 异步订阅和监听

我在一个使用Python、Twisted和Redis的项目中工作。因此,团队决定使用txredisapi进行Python模块和Redis之间的通信。这个项目做了很多不同的事情,我们需要订阅几个channel来收听Redis发送的消息,而不会停止其他功能(异步)。一个执行是否可以同时处理所有工作并监听Redis发送的消息,还是我们必须将代码分开并在不同的流程中执行?我们使用以下代码来收听消息:importtxredisapiasredisclassRedisListenerProtocol(redis.SubscriberProtocol):defconnectionMade(self)

python - txredisapi 异步订阅和监听

我在一个使用Python、Twisted和Redis的项目中工作。因此,团队决定使用txredisapi进行Python模块和Redis之间的通信。这个项目做了很多不同的事情,我们需要订阅几个channel来收听Redis发送的消息,而不会停止其他功能(异步)。一个执行是否可以同时处理所有工作并监听Redis发送的消息,还是我们必须将代码分开并在不同的流程中执行?我们使用以下代码来收听消息:importtxredisapiasredisclassRedisListenerProtocol(redis.SubscriberProtocol):defconnectionMade(self)

node.js - 使用 nodejs 和 redis(node_redis) 发布订阅

我正在尝试使用nodejs和node_redis构建一个通用的发布/订阅服务器,该服务器从具有channel名称的浏览器接收请求,并响应已发布到该channel的任何数据。为此,我使用来自浏览器的长轮询请求,并通过在channel上收到消息时发送响应来处理这些请求。对于每个新请求,都会创建一个对象来订阅channel(当且仅当它不存在时)。clients={};//whenrequestcomesin,clients[channel]=redis.createClient();clients[channel].subscribe(channel);这是处理订阅channel的最佳方式,

node.js - 使用 nodejs 和 redis(node_redis) 发布订阅

我正在尝试使用nodejs和node_redis构建一个通用的发布/订阅服务器,该服务器从具有channel名称的浏览器接收请求,并响应已发布到该channel的任何数据。为此,我使用来自浏览器的长轮询请求,并通过在channel上收到消息时发送响应来处理这些请求。对于每个新请求,都会创建一个对象来订阅channel(当且仅当它不存在时)。clients={};//whenrequestcomesin,clients[channel]=redis.createClient();clients[channel].subscribe(channel);这是处理订阅channel的最佳方式,

Redis pubsub 与阻塞操作

redis的pubsub和blocking操作应该如何选择?Redis提供像BLPOP这样的阻塞操作,它会阻塞操作直到可以从列表中弹出一个元素。为什么我不应该用这个来实现PUBSUB的功能。PUBSUB允许您定义比基本列表更高级别的channel。如果我的用例很简单,没有多个channel,我可以使用基本的阻塞操作吗? 最佳答案 使用带有阻塞操作的列表和发布/订阅设施之间有一个重要的区别。具有阻塞操作的列表可以很容易地用作队列,而发布/订阅channel不涉及任何排队。pub/sub中唯一涉及的缓冲区与通信(即套接字管理)有关。这意

Redis pubsub 与阻塞操作

redis的pubsub和blocking操作应该如何选择?Redis提供像BLPOP这样的阻塞操作,它会阻塞操作直到可以从列表中弹出一个元素。为什么我不应该用这个来实现PUBSUB的功能。PUBSUB允许您定义比基本列表更高级别的channel。如果我的用例很简单,没有多个channel,我可以使用基本的阻塞操作吗? 最佳答案 使用带有阻塞操作的列表和发布/订阅设施之间有一个重要的区别。具有阻塞操作的列表可以很容易地用作队列,而发布/订阅channel不涉及任何排队。pub/sub中唯一涉及的缓冲区与通信(即套接字管理)有关。这意