亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

隊列里到底保存的是每一個要發郵件的對象(用戶),還是保存發郵件的這個任務?

我有一個疑問,隊列里到底保存的是每一個要發郵件的對象(用戶),還是保存發郵件的這個任務?項目中大家是怎么用的?

正在回答

3 回答

看什么需求了,可以在隊列里只保存一個任務名稱加上這個任務所需要的數據,具體實現可以定義一個與這個名稱相對應的任務實現函數或者是類,取出隊列就可以根據任務名稱來執行任務了,這樣一個好處就是不僅僅局限與發送郵件任務,還可以實現其他一些任務,當然這也帶來了一個問題,就是內存優化問題,如何保證正確的執行完這些任務內存釋放掉,課程中是任務全部取出并執行完畢后腳本就執行完畢,也就是php進程關閉,內存自然就釋放掉了,那也是局限與當有郵件任務新增時會觸發并啟動這個發送郵件的進程,而大多數任務隊列是沒有觸發啟動進程的,,都是以后臺守護進程存在的,由管理員來手動或者其他方式觸發,反正就是不會在業務中做觸發的,不管是有什么任務添加進來,都可以自動的去執行,不需要觸發,沒有觸發也就是這個進程是不能關閉的,不能關閉就代表內存如果不合理的釋放就會造成這個守護進程的內存一直增加,遲早是會把計算機的內存消耗一空的,而具體實現思路呢可以參考php多進程編程了,需要擴展pcntl,且只能UNIX系統內核環境下支持,也就是要想php使用多線程,就需要在linux系統環境下,可以參考php-resque的實現思路,


1 回復 有任何疑惑可以回復我~
#1

阿布羅狄 提問者

非常感謝:)
2016-10-17 回復 有任何疑惑可以回復我~

pcntl是多進程,使用這種解決并發的隊列問題最好不要用php解決,php不是干這個的

0 回復 有任何疑惑可以回復我~

保存的是需要發送的郵件

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

隊列里到底保存的是每一個要發郵件的對象(用戶),還是保存發郵件的這個任務?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號