中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python Django2.0集成Celery4.1教程

發布時間:2020-09-06 04:11:25 來源:腳本之家 閱讀:108 作者:Immok 欄目:開發技術

環境準備

Python3.6

pip install Django==2.0.1

pip install celery==4.1.0

pip install eventlet (加入協程支持)

安裝erlang和rabbitMQ-server

配置settings.py文件

在settings.py文件中添加如下內容

...
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672'

在settings.py同級目錄創建celery.py

celery.py

注意替換: project_name

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery

# 設置環境變量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

# 注冊Celery的APP
app = Celery('project_name')
# 綁定配置文件
app.config_from_object('django.conf:settings', namespace='CELERY')

# 自動發現各個app下的tasks.py文件
app.autodiscover_tasks()

修改settings.py同級目錄的init.py文件

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ['celery_app']

在某個APP中創建tasks.py文件

tasks.py

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

from celery.task import task

# 自定義要執行的task任務
@task
def print_hello():
  return 'hello celery and django...'

配置周期性任務或定時任務

再次編輯settings.py文件,添加如下內容

定時任務的配置格式參考:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

from celery.schedules import crontab
CELERY_BEAT_SCHEDULE = {
  # 周期性任務
  'task-one': {
    'task': 'app.tasks.print_hello',
    'schedule': 5.0, # 每5秒執行一次
    # 'args': ()
  },
  # 定時任務
  'task-two': {
    'task': 'app.tasks.print_hello',
    'schedule': crontab(minute=0, hour='*/3,10-19'),
    # 'args': ()
  }
}

啟動worker和定時任務

啟動worker (切換到manage.py同級目錄下執行)

celery -A project_name worker -l info -P eventlet

啟動定時任務或周期性任務

celery -A project_name beat -l info

這里備注一下:最好使用supervisord來管理上面這2條命令

存放任務結果的擴展

pip install django-celery-results
Install APP
INSTALLED_APPS = (
  ...,
  'django_celery_results',
)

生成數據庫表:python manage.py migrate django_celery_results

配置settings:CELERY_RESULT_BACKEND = 'django-db' (用數據庫存放任務執行結果信息)

以上這篇Python Django2.0集成Celery4.1教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通许县| 屯昌县| 泰顺县| 荆州市| 芒康县| 景东| 庆安县| 巴彦淖尔市| 青铜峡市| 西畴县| 威海市| 娄底市| 临城县| 武宣县| 浮梁县| 大兴区| 团风县| 正定县| 新乡市| 邮箱| 登封市| 澎湖县| 缙云县| 仁化县| 宽甸| 呼玛县| 安远县| 桐柏县| 德令哈市| 亳州市| 石狮市| 宜春市| 宁都县| 龙口市| 柳河县| 太仆寺旗| 湖南省| 永修县| 三都| 民和| 梧州市|