草庐IT

phoenix-channels

全部标签

c# - StackExchange.Redis如何订阅多个 channel

我如何订阅多个channel?据我了解,需要传递给Subscribe方法的Channel类支持模式或单channel订阅。是否可以在一个命令中订阅多个channel?例子:客户在3个不同的channel上发布:“ChannelA”、“ChannelB”和“ChannelC”。我如何通过一个命令订阅这些channel?我知道我可以使用像“Channel*”这样的模式,但是,如果这些channel不能用单一模式来描述怎么办?订阅“ChannelA、ChannelB、ChannelC”似乎不起作用-我无法从ChannelMessageQueue获取任何消息。 最佳

Node.js/Express/Redis 只等待来自 channel 的一条消息

我有一个redis连接订阅了一个带有获取请求的channelapp.get('/wait',function(req,res){redisSub.on('message',function(channel,msg){console.log('rcv:'+msg);});});然后通过不同的获取请求发送消息app.get('/done/:msg',function(req,res){redisPub.publish('message',req.params.msg);});问题是我希望该请求在收到消息后停止收听消息。否则,当我再次通过时,它仍会收听并再次收到下一条消息。收到消息后,我不确

c - 我怎样才能订阅一个 channel ,然后在不阻塞的情况下做其他事情?

我正在使用redispub/sub做一些实时处理。在订阅端,我想订阅一个指定的channel,然后做一些其他的计算。我觉得如果我向服务器发送subscribe命令,它会阻止代码。那么我该如何做其他事情,当订阅消息到达时,我通过回调处理程序处理它? 最佳答案 您需要两个不同的连接才能做到这一点。这是一个设计选择,因为当您订阅/PSUBSCRIBE时,连接语义实际上从请求-响应更改为推送式,因此不适合运行命令而不实现更复杂的语义,例如,IMAP协议(protocol)。 关于c-我怎样才能订

redis - StackExchange.Redis 客户端在订阅 channel 时是否受到限制?

我想用StackExchange.Redis开发一个PUB/SUB消息队列。在StackExchange.Redis文档中指定:-Thedataisnotsentviapub/sub;thepub/subAPIisonlyusedtonotifyworkerstocheckformorework所以我明白,一旦订阅的工作人员通过PUB/SUB检测到通知,我可能需要使用其他Redis操作(如LPOP)来检查工作。但是Redis引用指定:Oncethecliententersthesubscribedstateitisnotsupposedtoissueanyothercommands,e

Django Channels 消息生命周期

我有一些(可能是大量的)JSON数据需要推送到Djangochannel中。数据所需的生命周期非常短(2-3秒就足够了)。我使用Redis作为后端。什么是默认消息生命周期?是否可以指定消息的生命周期? 最佳答案 默认情况下,生命周期没有限制,但您可以使用SETEX而不是SET来设置一个:SETEXmykey10"Hello"或者通过使用带有EX标志的SET:SETmykey"Hello"EX10 关于DjangoChannels消息生命周期,我们在StackOverflow上找到一个类似

python - 如何在订阅 channel 之前将消息发布到 Redis

我正在编写一个应用程序来获取发布到Redis中的channel的消息并对其进行处理。这是一个长期存在的应用程序,基本上从不收听channel。defmsg_handler():r=redis.client.StrictRedis(host='localhost',port=6379,db=0)sub=r.pubsub()sub.subscribe(settings.REDIS_CHANNEL)whileTrue:msg=sub.get_message()ifmsg:ifmsg['type']=='message':print(msg)defmain():foriinrange(3):t

django - 如何使用 channel websocket 在 Django 中定位 websocketbridge.js?

我正在尝试使用Django项目中的channel实现websockets。我得到404的webscoketbridge.js下面是html模板。{%loadstaticfiles%}{%blocktitle%}交付{%endblock%}此外,我试图查看virtualenv/lib/python3.5/site-packages/channels路径,没有js文件夹或任何名为websocketbridge.js的文件有人解决过这个问题吗? 最佳答案 javascript桥在v2.1.4中被移除。这是提交:https://github

django - 在Django项目中订阅一个redis channel

我有多个用nodejs或python/django或...编写的应用程序这些服务运行良好。但是需要相互之间进行发布/订阅异步通信。在nodejs中没有问题,可以轻松地发布/订阅到任何redischannel。问题:我的问题是如何持续订阅redischannel并接收其他服务发布的数据?注意:许多链接建议使用django-channels。但我想那不是这样做的方法。如果可以,任何人都可以帮助我并提供有关如何操作的详细信息。更新:默认情况下,Django不像nodejs那样是基于事件的。因此,如果我使用redis客户端,我应该每秒检查一次redis,看看是否有任何内容被发布。我认为仅在Py

redis - 可以将redis键空间通知推送到redis流而不是pub/sub channel 吗

我们有一个要求,我们需要获得有关Redis数据结构更改的通知。根据我的研究,我发现我可以使用Redis键空间通知来做同样的事情。然而,Rediskey空间通知将事件发送到Redis发布/订阅channel,该channel是即发即忘的,即一旦客户端失去连接,所有事件直到连接再次建立都将丢失。Redis流解决了这个问题。我还想使用Redis流的消费者组功能。那么有什么方法可以将Redis键空间通知推送到Redis流而不是Redis发布/订阅channel? 最佳答案 根据当前的Redisv5.0.3,唯一可以做到这一点的方法是使用模块

python - django channel 配置不当 : Cannot find 'app' in ASGI_APPLICATION module

我正在使用Django设置channelasgi。我已经尝试升级Django和Channels。"Cannotfind%rinASGI_APPLICATIONmodule%s"%(name,path)django.core.exceptions.ImproperlyConfigured:Cannotfind'app'inASGI_APPLICATIONmodule.routing我的路由配置是按照mysite/routing中的教程进行的application=ProtocolTypeRouter({#(http->djangoviewsisaddedbydefault)'websoc