草庐IT

TIM_CHANNEL

全部标签

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

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

c# - 如何使用日期范围从 Redis (pub/sub) 保存和检索 channel 数据?

最初我问的是查询.rdb文件,这不是我想要做的-我将查询事件服务器。我即将开始一个项目,我们将在发布/订阅场景中使用Redis,使用RDB快照。.NetWCF客户端将通过MarcGravell's配置Redis连接BookSleeve并接受传入的请求。启用RDB快照后,将创建增量快照。我希望客户端能够根据给定的channel和日期范围检索数据集。我在想我会使用相同的WCF客户端进行读取和写入(除非有任何明显的反对意见)。我不完全清楚使用什么方法来查询服务器以检索日期范围、channel特定数据并通过WCF客户端传送这些数据。我能否通过BookSleeve实现此数据查询功能(如果可以,如

.net - 如何让 SignalR 订阅 Redis channel ?

我有一个Java服务器执行一些工作并将其结果发布到Redis上。我想将这个结果实时发送给一些用户;所以我实现了一个基于SignalR的解决方案。结果必须对很多客户端可用,而SignalR只是其中之一;因此无法修改服务器以完全符合我的要求。基本上,这就是我所拥有的:服务器->Redis->SignalR->浏览器我认为这是一个丑陋的解决方案,因为它使用Lazy类型来监听订阅的channel并调用委托(delegate)来告诉SignalR推送数据。最好的解决方案是将数据直接从服务器推送到信号器,但我无法更改服务器发布结果的方式。我想到了一个可执行文件充当Redis和Signalr之间的桥

redis - Redis(redis-py)可以处理多少个 channel ?

我的任务是为大量听众使用发布/订阅。这是来自docs的订阅的简化示例:r=redis.StrictRedis(...)p=r.pubsub()p.subscribe('my-first-channel','my-second-channel',...)formessageinp.listen():...#dosomethingwiththemessage假设我将为一个channelclient-#id订阅一个客户端。每个客户一个channel。问题是:如果我有成百上千的用户,可以使用这种方法吗?我是否应该为一个channel订阅所有这些并在消息中编码user-#id以在接收时进行过滤?