Python celery 任務例項

2021-09-26 09:29:24 字數 1097 閱讀 8277

# -*- coding: utf-8 -*-

"""celery 任務示例

本地啟動celery命令: python manage.py celery worker --settings=settings

週期性任務還需要啟動celery排程命令:python manage.py celerybeat --settings=settings

"""import datetime

from celery import task

from celery.schedules import crontab

from celery.task import periodic_task

from common.log import logger

@task()

def async_task(x, y):

"""定義乙個 celery 非同步任務

"""logger.error(u"celery 定時任務執行成功,執行結果::".format(x, y))

return x + y

def execute_task():

"""執行 celery 非同步任務

呼叫celery任務方法:

task.delay(arg1, arg2, kwarg1='x', kwarg2='y')

delay(): 簡便方法,類似呼叫普通函式

詳見 :

"""now = datetime.datetime.now()

# 呼叫定時任務

@periodic_task(run_every=crontab(minute='*/5', hour='*', day_of_week="*"))

def get_time():

"""celery 週期任務示例

run_every=crontab(minute='*/5', hour='*', day_of_week="*"):每 5 分鐘執行一次任務

periodic_task:程式執行時自動觸發週期任務

"""execute_task()

now = datetime.datetime.now()

python celery 任務排程器

celery是python開發的分布式任務排程模組,今天抽空看了一下,果然介面簡單,開發容易,5分鐘就寫出了乙個非同步傳送郵件的服務。celery本身不含訊息服務,它使用第三方訊息服務來傳遞任務,目前,celery支援的訊息服務有rabbitmq redis甚至是資料庫,當然redis應該是最佳選擇...

python Celery分布式任務佇列

celery是乙個簡單,靈活且可靠的分布式系統,可以處理大量訊息,同時為操作提供維護該系統所需的工具。這是乙個任務佇列,著重於實時處理,同時還支援任務排程。celery通過訊息進行通訊,通常使用 在客戶端和工作人員之間進行調解。為了啟動任務,客戶端將訊息新增到佇列中,然後 將訊息傳遞給工作人員 ce...

python celery學習筆記

專案中需要非同步執行某個任務,且失敗的時候需要重試,且需要知道是否執行成功,可以這樣設計。案例 如下 task def test task args,kwargs 處理邏輯 return truedef home request from celery tasks import test task ...