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

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

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

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

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

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

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

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

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

2018年3月19日 10:03