在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Python  數(shù)據(jù)庫/ rabbit異步處理時(shí),mysql讀取了一個(gè)還沒寫完的數(shù)據(jù),報(bào)錯(cuò)了。

rabbit異步處理時(shí),mysql讀取了一個(gè)還沒寫完的數(shù)據(jù),報(bào)錯(cuò)了。

應(yīng)用場(chǎng)景:
客戶上傳文件,django服務(wù)器在數(shù)據(jù)庫里寫入一條status=1的數(shù)據(jù).然后交給rabbit讀取文件并且解析,解析完成后把status設(shè)置成2。
rabbitmq的傳輸格式是{"file":"test", "dataSourceId":"1"}.因?yàn)閭鬟f的是id,所以有時(shí)候rabbitmq會(huì)報(bào)錯(cuò)說沒有這條記錄。
這是寫入數(shù)據(jù)的方法
clipboard.png
這是解析函數(shù),現(xiàn)在sleep就不會(huì)報(bào)錯(cuò)。

clipboard.png

我想問下怎么讓rabbitmq的程序等django寫完數(shù)據(jù)再去讀啊?或者有別的思路可以避免讀不出來數(shù)據(jù)

回答
編輯回答
老梗

大概意思,我是看懂了,就是說,是異步操作,并不能保證是完成的順序性。
我可以提供一個(gè)思路。是不是可以設(shè)置一個(gè)全局變量flag,在某個(gè)操作完成后,修改flag的值,根據(jù)值來判斷是否可以有id這條記錄。

2017年10月21日 12:19