步驟:
1. 建立專案
django-admin startproject project
3. 配置settings.py
debug = false
allowed_hosts = ['127.0.0.1']
# celery
djcelery.setup_loader()
broker_url = 'redis:'
celerybeat_scheduler = 'djcelery.schedulers.databasescheduler'
celery_accept_content = ['json']
celery_result_backend = 'redis://localhost:6379/2'
celery_task_serializer = 'json'
celery_enable_utc = true
time_zone = 'asia/shanghai'
celery_timezone = time_zone
# email
email_backend = 'django.core.mail.backends.smtp.emailbackend'
email_host = ""
email_host_password = ''
default_from_email = email_host_user = ""
email_port = 25
email_use_tls = true
4. tasks.py**
#coding=utf-8
from __future__ import absolute_import, unicode_literals
from celery import shared_task
from django.core.mail import send_mail
import logging
logger = logging.getlogger(__name__)
@shared_task
def celery_send_email(subject, message, from_email, recipient_list, **kwrags):
try:
logger.info("\n開始傳送郵件")
send_mail(subject, message, from_email, recipient_list, **kwrags)
logger.info("郵件傳送成功")
return 'success!'
except exception as e:
logger.error("郵件傳送失敗: {}".format(e))
5.初始化資料庫
python manage.py makemigrations
python manage.py migrate
6. 配置我們的celery-beat
django提供了乙個視覺化的後台,
啟動服務
python manage.py runserver
。瀏覽器訪問 :120.0.0.1:8000/admin
這時候我們發現我們還沒有管理員帳號?
命令視窗通過python manage.py createsuperuser 建立管理員帳號
7. 後台 periodic task 中增加定時任務
這裡配置定時任務可以做到最小單位 microsecond 微妙
interval 間隔
crontab 最小單位是minute分鐘
分 時 日 月 星期
8. 啟動心跳
python manage.py celery beat
9. 啟動 worker
python manage.py celery worker -l info
10. 啟動 celery flower ,對任務進行監控
pip install celery-flower
python manage.py
celery flower
127.0.0.1:5555
每次執行非同步task後, celery都會返回asyncresult物件作為結果. 你可以將其儲存, 然後在將來檢視該task是否執行成功和返回結果:
django celery 任務訊息佇列
描述 為提高 效能,很多耗時,但不影響頁面正常的操作,可丟給訊息佇列非同步執行 比如sns 的 新鮮事兒 系統,我發帖之後,會給所有關注我的人推送一條通知。乍一看沒什麼難的,發帖之後找出關注我的人,然後生成相應的訊息記錄就行了。但問題是,100個人關注我,就要執行100條insert查詢,更要命的是...
Django Celery定時任務
celery是由python開發的乙個簡單 靈活 可靠的處理大量任務的分發系統,它不僅支援實時處理也支援任務排程。pip3 install django celery beat pip3 install redis 寫入配置 celery broker url redis 密碼 127.0.0.1 ...
Django Celery使用及介紹
1.1 celery應 舉例 1.2 celery有以下優點 1.3 celery 特性 2.1 celery 扮演 產者和消費者的角色 2.2 產生任務的方式 2.3 celery 依賴三個庫 這三個庫,都由 celery 的開發者開發和維護.推薦版本 django 2.2.6 django ce...