鍍金池/ 問答/PHP/ 關(guān)于redis隊列,和計劃任務(wù)來執(zhí)行批量操作的區(qū)別。

關(guān)于redis隊列,和計劃任務(wù)來執(zhí)行批量操作的區(qū)別。

之前項目遇到一個問題,需要批量發(fā)送短信,這樣就得根據(jù)一定的條件去查詢數(shù)據(jù)庫,然后拿到手機(jī)號來發(fā)送信息。
開始做的時候使用的循環(huán)查詢數(shù)據(jù),這樣做導(dǎo)致的結(jié)果是,整個項目都卡的不行。然后由于服務(wù)器的配置問題不能用redies隊列來實現(xiàn)這個功能,然后就想了一個辦法是,把條件存儲,放到一個文件里面,然后用計劃任務(wù)每隔10S來執(zhí)行一次條件,其實到這里我有一個疑問,這樣做 ,和直接放到redis隊列來執(zhí)行的區(qū)別是什么。希望來個通俗易懂的解釋。

回答
編輯回答
嫑吢丕
哎?現(xiàn)在的程序員都不會寫多線程了嗎?

區(qū)別的話,性能上有點區(qū)別,redis的隊列是可控的,完整的;定時的計劃任務(wù)易受干擾,程序的操作邏輯需要信任外部的一個程序,可控性較低

2018年4月23日 05:35
編輯回答
蟲児飛

從原理上來看沒有什么區(qū)別. 存redis 是存儲, 存file 也是存儲.

只是說用哪種方案更簡便快捷而已.

你這里就是想將發(fā)送短信的操作異步化,那么不管是放到 file, redis, memcached, db 其實都是可以的. 只需要根據(jù)你實際的環(huán)境情況,結(jié)合自己的喜好,都可以.程序不出錯,管理方便就行.

2018年3月19日 10:03