溫馨提示×

Linux中Celery的任務調度如何設置

小樊
138
2024-09-14 10:41:12
欄目: 智能運維

在 Linux 系統中,使用 Celery 進行任務調度需要以下幾個步驟:

  1. 安裝 Celery:

    使用 pip 安裝 Celery:

    pip install celery
    
  2. 創建一個 Celery 實例:

    在你的項目中創建一個名為 celery.py 的文件,然后創建一個 Celery 實例。例如:

    from celery import Celery
    
    app = Celery('tasks', broker='pyamqp://guest@localhost//')
    
    @app.task
    def add(x, y):
        return x + y
    

    這里,我們創建了一個名為 add 的任務,它接受兩個參數并返回它們的和。

  3. 配置 Celery:

    在項目根目錄下創建一個名為 celeryconfig.py 的文件,用于存放 Celery 的配置信息。例如:

    BROKER_URL = 'pyamqp://guest:guest@localhost:5672/'
    CELERY_RESULT_BACKEND = 'rpc://'
    CELERY_TASK_SERIALIZER = 'json'
    CELERY_RESULT_SERIALIZER = 'json'
    CELERY_ACCEPT_CONTENT = ['json']
    CELERY_TIMEZONE = 'Asia/Shanghai'
    CELERY_ENABLE_UTC = True
    
  4. 啟動 Celery worker:

    在終端中,進入到你的項目目錄,然后運行以下命令啟動 Celery worker:

    celery -A celery worker --loglevel=info
    

    -A celery 指定了 Celery 實例的位置,worker 表示啟動一個 worker 進程,--loglevel=info 設置日志級別為 info。

  5. 調用任務:

    現在你可以在其他 Python 腳本或交互式解釋器中調用 Celery 任務。例如:

    from celery import Celery
    
    app = Celery('tasks', broker='pyamqp://guest@localhost//')
    
    result = app.send_task('tasks.add', args=(4, 4), countdown=10)
    print(result.get())
    

    這里,我們調用了之前定義的 add 任務,并設置了 10 秒的延遲。result.get() 會等待任務完成并返回結果。

  6. 設置定時任務:

    要設置定時任務,你需要在 celeryconfig.py 文件中添加一個名為 CELERYBEAT_SCHEDULE 的字典。例如:

    CELERYBEAT_SCHEDULE = {
        'add-every-30-seconds': {
            'task': 'tasks.add',
            'schedule': 30.0,
            'args': (1, 1)
        },
    }
    

    這里,我們設置了一個每 30 秒執行一次的定時任務,調用 add 任務并傳入參數 (1, 1)。

  7. 啟動 Celery beat:

    在終端中,進入到你的項目目錄,然后運行以下命令啟動 Celery beat:

    celery -A celery beat --loglevel=info
    

    -A celery 指定了 Celery 實例的位置,beat 表示啟動一個 beat 進程,--loglevel=info 設置日志級別為 info。

現在你已經成功設置了 Celery 任務調度。你可以根據需要添加更多的任務和定時任務。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女