簡體   English   中英

使用 Exchangelib 加快獲取電子郵件的速度

[英]Speeding up fetching emails using Exchangelib

目前我以這種方式使用迭代器獲取電子郵件:

for item in account.inbox.filter(datetime_received__gt=__LAST_ANALYSYS__+timedelta(0,1)):

我還測試了if type(item) == Message:作為另一個過濾層。

問題:獲取 400+ 條消息需要 5-10 分鍾; 我有一台 3.5 GHz 雙核 Intel Core i7 和 16 GB 2133 MHz LPDDR3 的 macbook pro。 我有相當快的寬帶連接。

該應用程序將很快遷移到 Azure。 檢索速度會提高嗎?

或者,我可以使用另一個技巧嗎? 我看到一篇關於使用only(attribs)網絡的帖子,但不確定這是否有實質性幫助,或者它如何與account.inbox.filter方法結合使用? 謝謝你。

只需嘗試.only()方法,看看它是否有助於您的用例。 通常它會這樣做,因為沒有它,您將獲取所有內容 附件、MIME 內容和其他重領域。 如果您有一個文件夾,其中消息項與其他項類型的比率較低,您還可以通過對item_class進行過濾器來進行過濾,以便過濾服務器端而不是客戶端。

.only()支持鏈接,就像 Django QuerySets: some_folder.filter some_folder.filter(...).only(...)一樣。 https://ecederstrand.github.io/exchangelib/#searching

您可以使用多線程之類的東西來加快進程。 將獲取部分保存在 function 中,然后運行:

threading.Thread(target=(function_name))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM