隊列的實際應用,比如發郵件!!!

來源:互聯網
上載者:User
隊列實現看似簡單,我想問下,在比如發送大量郵件的情況的,進入隊列和消除隊列,肯定不是在統一時間進行的吧,比如我調用inqueue.php進隊列加入要發送的郵箱地址,dequeue.PHP發送郵件並消除減去隊列,這兩個肯定不是一起啟動並執行吧?。還是在queue.php裡邊先進隊列在消除隊列如果是這樣的話那和用迴圈有什麼區別?

誰能以發送大量郵件為例子給解釋下隊列的實際用法嗎

回複內容:

隊列實現看似簡單,我想問下,在比如發送大量郵件的情況的,進入隊列和消除隊列,肯定不是在統一時間進行的吧,比如我調用inqueue.php進隊列加入要發送的郵箱地址,dequeue.PHP發送郵件並消除減去隊列,這兩個肯定不是一起啟動並執行吧?。還是在queue.php裡邊先進隊列在消除隊列如果是這樣的話那和用迴圈有什麼區別?

誰能以發送大量郵件為例子給解釋下隊列的實際用法嗎

隊列怎樣運作你基本上不需要考慮,只要使用現成的隊列即可,例如httpsqs,簡單的訊息佇列,先進先出,用http操作,簡單易用,只關係入列和出列即可,至於有什麼用,例如郵件發送、大量資料寫入、簡訊發送、反正可以非同步作業的盡量隊列完成

參考這個:http://segmentfault.com/q/1010000000750317/a-1020000000750367

本質就是非同步和阻塞。

不用隊列

進入操作平台

點擊發送按鈕

等……

等……

咦…… 怎麼沒有反應……

或者人性化點兒,添加一個進度條

N分鐘後,操作完成

在這個過程中,你是不能進行任何操作的。

使用隊列

進入操作平台

點擊發送按鈕

(想等,想偷懶,沒門,已經結束了)

繼續進行其它操作。

我前幾天也提了這個問題和你的比較相似點這裡
現在我想的解決方案是,將任務以隊列形式交給後台執行,至於你的問題,隊列的優點就是你發送了一個任務,交給worker去執行,你可以繼續做想做的事情,然後通過事件監聽來記錄每個條目執行成功與否,成功後消除。

php的話用gearman就挺好,或者redis來處理隊列

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.