国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

flask - Python使用redis發布訂閱時,監聽頻道時出現的問題?【一句話描述不清楚,請各位細看內容】

瀏覽:122日期:2022-08-21 17:05:26

問題描述

我想在Flask應用中添加一個簡單的消息通知功能,查了很多資料,發現通知功能主要有兩個問題【這也只是個人愚見,請指正】1:服務器如何向客戶端發送消息?2:服務器如何知道何時該發送消息了?【例如,管理員想發個全站公告,這時就需要對應的模塊向客戶端發送通知,該如何通知該模塊呢?】

對于問題1:我使用H5推出的SSE規范,使得服務器可以單向向客戶端發送消息。對于問題2:我首先想到的是輪詢數據庫中的消息表,一旦發現有相應的消息插入,就向客戶端推送。但是感覺這樣太耗資源了。于是又詢問了網上的前輩,有人說使用redis做緩存。于是今天又仔細看了一天關于redis消息的發布/訂閱功能【比較愚笨】。于是我想到了下面的方法:每當消息表插入消息時,就向對應的頻道發布一條消息,內容主要是要發送消息的主要組成部分,然后對應的消息發送模塊已經訂閱了這個頻道,當然就能收到要發送的消息了。可是聽著簡單,我在實踐時又遇到了一個問題,具體的示例如下所示:問題一:這是SSE訪問的路由,在該路由中訂閱頻道

flask - Python使用redis發布訂閱時,監聽頻道時出現的問題?【一句話描述不清楚,請各位細看內容】

ps.listen是用來監聽頻道的,源碼中是一個while循環,如下所示:

flask - Python使用redis發布訂閱時,監聽頻道時出現的問題?【一句話描述不清楚,請各位細看內容】

如果頻道中有發布消息,那么for循環中就能取出data,然后返回,這樣看著挺好,但是SSE規范中,如果每隔一段時間服務器沒有發送數據的話,就會重新請求連接。我設置的時間是1分鐘【自我感覺已經夠長了】,可是如果10分鐘甚至更長時間頻道中都沒有消息,那么for循環就取不出data,’/sse’請求就會一直得不到響應,就會出現下面的情況:

flask - Python使用redis發布訂閱時,監聽頻道時出現的問題?【一句話描述不清楚,請各位細看內容】

這種情況應該也是很消耗資源的吧,請問該怎么解決這種情況呢?

問題二:我的SSE規范的代碼在message.html中寫的,訪問路由如下【hello_world只是示例】:flask - Python使用redis發布訂閱時,監聽頻道時出現的問題?【一句話描述不清楚,請各位細看內容】

總感覺訪問’/message’的時候特別卡,這是怎么回事,是跟線程有關系嗎?

望各位前輩能夠指導下該怎么解決上述的問題。

問題解答

回答1:

import redis, threadingr = redis.Redis(host=’127.0.0.1’, port=6379, db=3)def x(): while 1:time.sleep(3)r.publish('a', ’a_%s’% time.time())r.publish(’b’, ’b_%s’% time.time())xt = threading.Thread(target=x)xt.setDaemon(True)xt.start()ps = r.pubsub()ps.subscribe([’a’, ’b’])for item in ps.listen(): print item

標簽: Python 編程
主站蜘蛛池模板: 中国一级毛片特级毛片 | 久久99亚洲精品久久频 | 国产精品三级手机在线观看 | 国产精品国产三级国产普通 | 久久国产精品一国产精品 | 欧美a级完整在线观看 | 久久国产精品久久精 | 国产一区二区三区毛片 | 久久久久久尹人网香蕉 | 日韩一区二区三区在线视频 | 欧美孕交视频 | 波多野结衣在线视频免费观看 | 一级特级欧美aaaaa毛片 | 99久久亚洲 | 国产精品亚洲欧美日韩区 | 亚洲精品欧美日韩 | 成 人 黄 色 视频播放16 | 亚洲欧美卡通成人制服动漫 | 韩国一级毛片 | 3级黄色| 本道久久综合88全国最大色 | 99爱视频免费高清在线观看 | 69精品免费视频 | 亚洲视频欧美视频 | 丝袜精品 欧美 亚洲 自拍 | 国产在线高清不卡免费播放 | 黄色三级在线 | 亚洲精品视频久久 | 奇米影视7777久久精品 | 亚洲国产高清在线精品一区 | 欧美成人性生活视频 | 日本一级特黄在线播放 | 天天五月天丁香婷婷深爱综合 | 久久有这有精品在线观看 | 日本特黄特色视频 | 精品久久久中文字幕二区 | 欧美h版成版在线观看 | 欧美成人免费观看bbb | 国产一级毛片免 | 欧美三级网站 | 久在线播放 |