如題:http://wtbis.cn/doc/workerman/faq/multi-woker-for-windows.html
如果windows下用bat文件啟動了多個(gè)worker,他們不同進(jìn)程都有數(shù)據(jù)庫操作。這時(shí)的數(shù)據(jù)庫操作就不能保證順序了吧?官方有什么備用的方案是我沒瀏覽到的嗎?
什么樣的業(yè)務(wù)需要保證每個(gè)進(jìn)程順序操作數(shù)據(jù)庫?
我沒表達(dá)清楚,意思是不同進(jìn)程同時(shí)操作數(shù)據(jù)庫,會不會出現(xiàn)這種請款:數(shù)據(jù)庫里原本的數(shù)值1,A進(jìn)程讀出來+1后得2準(zhǔn)備寫進(jìn)去,但被B進(jìn)程先寫進(jìn)了100,后A進(jìn)程再寫進(jìn)2的時(shí)候,就吧B進(jìn)程的100給覆蓋了,沒加鎖的的情況下 會不會出現(xiàn)這種錯(cuò)亂呢?
還有,體驗(yàn)了一下wokerman5.0 beta版的協(xié)程http客戶端,windows下使用酸爽啊,因?yàn)闅v史原因公司項(xiàng)目沒有部署在linux上,windows下只能使用http協(xié)程客戶端了,期待5.0出正式版阿,大概什么時(shí)候能出?
會不會出現(xiàn)這種情況:數(shù)據(jù)庫里原本的數(shù)值1,A進(jìn)程讀出來+1后得2準(zhǔn)備寫進(jìn)去,但被B進(jìn)程先寫進(jìn)了100,后A進(jìn)程再寫進(jìn)2的時(shí)候,就吧B進(jìn)程的100給覆蓋了,沒加鎖的的情況下 會不會出現(xiàn)這種錯(cuò)亂呢?
任何語言任何框架都有可能出現(xiàn)這種問題,需要業(yè)務(wù)自己想辦法規(guī)避。
例如用一個(gè)SQL完成原子操作,SQL類似 update user set money = money + 1 where id=1;
或者只在數(shù)值正確時(shí)更新,SQL類似 update user set money = 2 where id=1 and money=1;
還有很多其他方案,具體可以問AI
總之你不要指望哪個(gè)框架神不知鬼不覺的給你自動解決這種問題,都需要業(yè)務(wù)介入的