溫馨提示×

如何在Linux上配置Celery集群

小樊
89
2024-09-14 10:44:54
欄目: 智能運維

在 Linux 上配置 Celery 集群需要以下幾個步驟:

  1. 安裝 Celery 和相關(guān)依賴庫:

    使用 pip 安裝 Celery 和其他必要的庫,例如 Redis(用于消息代理)和 Django(如果你使用 Django 作為后端)。

    pip install celery redis django
    
  2. 創(chuàng)建一個新的 Celery 項目或在現(xiàn)有項目中添加 Celery 支持:

    如果你還沒有一個項目,可以創(chuàng)建一個新的項目。在項目根目錄下創(chuàng)建一個名為 celery.py 的文件,然后在 __init__.py 文件中導(dǎo)入 Celery 實例以確保它是項目的一部分。

    # project/celery.py
    from __future__ import absolute_import, unicode_literals
    import os
    from celery import Celery
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
    
    app = Celery('project')
    
    app.config_from_object('django.conf:settings', namespace='CELERY')
    
    app.autodiscover_tasks()
    
    # project/__init__.py
    from __future__ import absolute_import, unicode_literals
    from .celery import app as celery_app
    
    __all__ = ('celery_app',)
    
  3. 配置 Celery 和 Redis:

    在 Django 的 settings.py 文件中,添加以下配置以設(shè)置 Celery 和 Redis:

    CELERY_BROKER_URL = 'redis://localhost:6379'
    CELERY_RESULT_BACKEND = 'redis://localhost:6379'
    CELERY_ACCEPT_CONTENT = ['application/json']
    CELERY_TASK_SERIALIZER = 'json'
    CELERY_RESULT_SERIALIZER = 'json'
    
  4. 創(chuàng)建任務(wù):

    在 Django 應(yīng)用程序中創(chuàng)建一個新的任務(wù)。例如,在一個名為 tasks.py 的文件中創(chuàng)建一個簡單的任務(wù):

    from celery import shared_task
    
    @shared_task
    def add(x, y):
        return x + y
    
  5. 運行 Celery worker:

    在項目根目錄下,使用以下命令啟動 Celery worker:

    celery -A project worker --loglevel=info
    

    這將啟動一個 Celery worker,它將開始處理任務(wù)隊列中的任務(wù)。你可以根據(jù)需要啟動多個 worker 來實現(xiàn)集群。

  6. 調(diào)用任務(wù):

    現(xiàn)在你可以從你的應(yīng)用程序中調(diào)用 Celery 任務(wù)。例如,在 Django 視圖中調(diào)用 add 任務(wù):

    from .tasks import add
    
    result = add.delay(4, 4)
    

通過以上步驟,你已經(jīng)成功地在 Linux 上配置了一個 Celery 集群。你可以根據(jù)需要調(diào)整 worker 的數(shù)量、Redis 配置等以滿足你的需求。

0