[英]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.