iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

前言

本篇來分享給大家,如何使用 Celery 來執行一個排程~~~~~~

開始安裝

  1. 前提條件
    Linux 系統(例如 Ubuntu 或其他 Linux 發行版)
    Python 3 已安裝
    Redis 作為佇列代理(broker)
    Celery 用於處理異步任務

  2. 安裝 Redis

sudo apt update
sudo apt install redis-server

確保 Redis 正常運行

sudo systemctl start redis
sudo systemctl enable redis
sudo systemctl status redis
  1. 安裝 Celery
pip install celery

建立 Celery_task

  1. 建立 Python 專案
mkdir celery_app
cd celery_app
  1. 編寫 celery.py
    在專案目錄下創建一個 celery.py 檔案,程式碼可以自己撰寫,也可以參考我的
from celery import Celery

# 創建 Celery 應用,並使用 Redis 作為 broker
app = Celery('tasks', broker='redis://localhost:6379/0')

@app.task
def add(x, y):
    return x + y

這段程式碼創建了一個名為 add 的簡單任務,該任務接受兩個參數並返回它們的和

運行 Celery_Worker 與 執行 Celery_Task

打開終端並運行以下命令啟動 worker

celery -A celery_app worker --loglevel=info

接下來我們新建一個檔案 run_task.py

from celery_app import add

# 呼叫 Celery 任務,並返回結果
result = add.delay(4, 6)
print(f'Task result: {result.get()}')

最後我們直接該檔案

python run_task.py

就會看到輸出如下

Task result: 10

結論與感想

通過這次在 Linux 環境中實作 Celery,我們成功構建了一個基於任務佇列的異步處理系統。Celery 不僅能提高系統的效能,還能有效管理長時間運行的任務,避免阻塞主應用程序。使用 Redis 作為消息代理,簡單易用,且具擴展性。在這個實作中,我們展示了如何快速配置 Celery,並運行基本的任務範例,這對於需要處理背景工作或提升效能的應用來說是非常實用的解決方案,在實作過程中,我深刻體會到 Celery 與 Linux 的強大組合。Linux 的穩定性與 Celery 的高效性結合,能夠輕鬆應對各種複雜的後台任務。未來,我將會繼續探索更多進階的應用場景,讓系統能夠處理更大規模的數據和任務。

資料來源

https://myapollo.com.tw/blog/python-celery-part-1/

https://www.cloudamqp.com/docs/celery.html


上一篇
Day 22 - Linux 初見 Celery
下一篇
Day24 - Linux 初見 Yolov7
系列文
0 到 100 Linux快打旋風28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言