iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0

前言

從本篇開始之後會是一系列的 Linux 應用與實作,那至於做那些應用呢? 那就麻煩大家多多期待了,那本系列的第一個應用就是 Celery,那說到 Celery 相信大家都會想到 Task、排程,相信大家看到排程,一定多少有點熟悉,沒錯我記得之前有一篇是在介紹進程管理的文章中有提到,那本篇會先介紹 Celery 是什麼? 以及 Celery 與 Linux 的應用。

Celery 是什麼?

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

Linux 與 Celery

那既然解說了 Celery,我也來說說 Linux 與 Celery 之間的關係,首先 Celery 的流程圖大概會像這樣子
https://ithelp.ithome.com.tw/upload/images/20240930/20161224shtUJ1ZGMn.png

那如果有了 Linux 的話,流程圖就會變成這樣,簡單來說其實就只是在 Linux 這個系統架構裡啟動 Celery 的這個服務

https://ithelp.ithome.com.tw/upload/images/20240930/201612241mMHdPD2F6.png

這時候就會有人說了,那為什麼系統一定要用 Linux 呢? 其實 Celery 並不是只能在 Linux 系統上運行,它也可以在 Windows 系統上運行,但 Linux 是更容易被推薦的運行環境。這是因為 Celery 在 Linux 上的穩定性、兼容性和效能都更好,而在 Windows 上則存在一些限制與不理想的運行表現。不過如果你真的很懶得換系統的話,你也可以用 WSL 的方式。

結論與感想

今天這一篇先跟大家講解一下 Celery 與 Linux 的關係,還有介紹 Celery,下一篇會教大家如何在 Linux 啟動 Celery 服務,然後進程任務。

資料來源

https://hackmd.io/BDDPZkm3QVCyso_BLR_x_Q


上一篇
Day21 - 用 linux 設置郵件伺服器 Mail Server
下一篇
Day 23 - Linux Celery 實作篇
系列文
0 到 100 Linux快打旋風28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言