av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

flask - Python使用redis發(fā)布訂閱時(shí),監(jiān)聽頻道時(shí)出現(xiàn)的問題?【一句話描述不清楚,請各位細(xì)看內(nèi)容】

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

問題描述

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

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

flask - Python使用redis發(fā)布訂閱時(shí),監(jiān)聽頻道時(shí)出現(xiàn)的問題?【一句話描述不清楚,請各位細(xì)看內(nèi)容】

ps.listen是用來監(jiān)聽頻道的,源碼中是一個(gè)while循環(huán),如下所示:

flask - Python使用redis發(fā)布訂閱時(shí),監(jiān)聽頻道時(shí)出現(xiàn)的問題?【一句話描述不清楚,請各位細(xì)看內(nèi)容】

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

flask - Python使用redis發(fā)布訂閱時(shí),監(jiān)聽頻道時(shí)出現(xiàn)的問題?【一句話描述不清楚,請各位細(xì)看內(nèi)容】

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

問題二:我的SSE規(guī)范的代碼在message.html中寫的,訪問路由如下【hello_world只是示例】:flask - Python使用redis發(fā)布訂閱時(shí),監(jiān)聽頻道時(shí)出現(xiàn)的問題?【一句話描述不清楚,請各位細(xì)看內(nèi)容】

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

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

問題解答

回答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

標(biāo)簽: Python 編程
主站蜘蛛池模板: 风间由美一区二区三区 | 秋霞午夜鲁丝一区二区老狼 | 福利网站在线观看 | 精品一区二区在线播放 | 国产一区二区网站 | 久久a级片| 成人做爰免费视频免费看 | 日韩香蕉视频 | 午夜黄色大片 | 亚洲国产成人av | 中文字幕国产视频 | 国产精品久久久久久久免费看 | 国产黄色精品 | 中文字幕日韩高清 | 久久精品欧美一区二区 | 黄色一级大片在线免费看国产一 | 国产日韩欧美日韩大片 | 自拍偷拍欧美日韩 | 黄色免费网站 | 国产成人精品一区二 | 亚洲一区二区三区在线播放 | 性生活毛片 | 欧美亚洲在线 | 九九精品免费视频 | 精品欧美一区二区精品久久 | 日本黄色视屏 | 黄色一级视频免费看 | 欧美视频一区二区 | 午夜视频在线 | 欧美一区二区三区视频 | 黄色一级生活片 | 日韩欧美视频 | 日韩免费在线观看视频 | 91观看| 欧美美女视频 | 成人一区二区三区四区 | 国产又粗又猛又黄又爽无遮挡 | 成人福利在线观看 | 麻豆tv在线观看 | 可以在线观看的av | 国产精品美女视频 |