A place for study and research

Python 100 Days Day53 Asynchronous Task and Timed Tasks

|

author: jackfrued

異步任務和定時任務

在Web應用中,如果一個請求執行了耗時間的操作或者該請求的執行時間無法確定,而且對於用戶來說只需要知道服務器接收了他的請求,並不需要馬上得到請求的執行結果,這樣的操作我們就應該對其進行異步化處理。如果說使用緩存是優化網站性能的第一要義,那麽將耗時間或執行時間不確定的任務異步化則是網站性能優化的第二要義,簡單的說就是能推遲做的事情都不要馬上做

上一章節中講到的發短信和上傳文件到雲存儲為例,這兩個操作前者屬於時間不確定的操作(因為作為調用者,我們不能確定三方平台響應的時間),後者屬於耗時間的操作(如果文件較大或者三方平台不穩定,都可能導致上傳的時間較長),很顯然,這兩個操作都可以做異步化處理。

在Python項目中實現異步化處理可以使用多線程或借助三方庫Celery來完成。

使用Celery實現異步化

使用多線程實現異步化

Comments