celery

Flask 整合 Celery

提到 Python 非同步(asynchronous)工作通常都會想到 Celery ,而 Web-based 應用程式也經常會將耗時的要求利用非同步的方式完成,所以 Django, Flask 等 Web framework 也幾乎都會整合 Celery 。

其中 Flask 的 Celery 相關套件相對鮮少維護,因此不建議利用 Flask Celery 套件整合 Celery 。

所幸用 Flask 整合 Celery 並非難事,本文將紀錄如何不利用 Flask 套件的情況下整合 Celery 。

Posted on  Jun 1, 2019  in  Flask  by  Amo Chen  ‐ 2 min read

Python Celery 教學 (1) - 介紹與初次使用

Celery 是一套頗成熟的 Distributed Task Queue 解決方案,讓我們可以非同步(asynchronous)執行任務(tasks) / 工作(jobs) ,這種非同步的作法很常見於 Web Application 。舉個例子說明適合使用 Celery 的情況也許會更清楚,假設有一使用者需要透過 Web Application 匯出一份龐大的資料(可能執行時間很長,超過 30 分鐘),在這情況之下,我們也無法要求使用者一直開著該網頁不關,這時候比較好的作法就是利用非同步的方式執行匯出資料的工作,把工作移到背景執行,然後告知使用者工作執行完畢後會透過 Email / 即時通訊軟體通知工作完成,讓使用者可以回來下載資料,如此一來,使用者就不需要一直開著網頁佔用伺服器的連線數, Celery 就是應用在這種非同步執行的情況下。

Celery 目前已經被許多公司使用(詳見 Companies/websites using Celery ),其中較知名的有 Instagram, Gandi, Red Hat, Uber 等等,所以算是蠻值得一學的 Python 模組。

本篇將學習如何使用 Celery 。

Last updated on  Nov 22, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 高階  by  Amo Chen  ‐ 4 min read