2014-02-28 113 views
0

我正在開發GAEJ應用程序,該應用程序會根據活動和定期發送電子郵件。
我目前的問題是,我很難想出跟蹤每個配額的最佳方式。我曾希望嘗試訪問我的代碼中的appstats,以檢查當天最後一分鐘&的mail.send調用總數,但該代碼的文檔相當缺乏。如何限制GAE電子郵件留在電子郵件配額下

任何意見將不勝感激,歡呼聲。

回答

0

一種方法可能是在每個配額日的內存緩存中保留一個計數。這些計數中的每一個都需要由數據存儲區分片計數器支持,以便何時/如果內存高速緩存計數被驅逐。

0

正如伊恩所說,您可以跟蹤通過櫃檯發送的郵件數量。如果有大量郵件,請考慮使用分片計數器。

另一種選擇是將消息放入任務隊列中,並將任務隊列的輸出限制爲每天100條消息(如果要停留在空閒配額下)。這樣如果一條消息今天不能發送,它將在明天發送。

要強制執行另一個配額,例如8條信息/分鐘或8個附件/分鐘,您可以簡單地鏈接任務隊列:第一個速率爲100 /天,然後是另一個速率爲32 /分鐘。這樣你就完全控制了你的配額。

注意事項:

  • 爲了配合谷歌計算配額的方式,你必須創建每個收件人一個任務,所以發送到4個收件人的一個郵件,您將創建4個任務
  • 如果您發送過許多郵件,任務隊列可能會堵塞(它們的空置速度比填滿時慢)。所以你必須觀察任務的數量。
+0

這適用於簡報風格的電子郵件,但這是我的代碼的最終目標是處理相當時間敏感的錯誤和報告。此外,如果一切都中斷,它應該只發送幾封電子郵件,以顯示出現問題,而不是用錯誤電子郵件填充每個人的收件箱。 – navpoc