国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Django異步任務(wù)之Celery的基本使用

Django異步任務(wù)之Celery的基本使用

2021-06-08 00:57Warm and new Python

這篇文章主要給大家介了關(guān)于Django異步任務(wù)之Celery使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

Celery

許多Django應(yīng)用需要執(zhí)行異步任務(wù), 以便不耽誤http request的執(zhí)行. 我們也可以選擇許多方法來完成異步任務(wù), 使用Celery是一個比較好的選擇, 因為Celery有著大量的社區(qū)支持, 能夠完美的擴(kuò)展, 和Django結(jié)合的也很好. Celery不僅能在Django中使用, 還能在其他地方被大量的使用. 因此一旦學(xué)會使用Celery, 我們可以很方便的在其他項目中使用它.

celery 是一個用于實現(xiàn)異步任務(wù)的庫, 在很多項目中都使用它, 它和 django 融合使用很完美. 使用 celery 可以在實現(xiàn) http request請求返回 view 前做一些我們想做的而且耗時的事情而不會讓用戶等待太久

環(huán)境

django 版本 == 1.11.6

celery 版本 == 3.1.25

安裝

?
1
2
pip install django-celery
pip install celery

首先需要將 celery 添加到 django 項目的 settings 里, celery 任務(wù)和 django 需要一個 中間人(broker),,這里使用的是 django 自帶的 broker, 但在生產(chǎn)中一般使用 rabbitmq, Redis 等,在 INSTALLED_APP 中需要添加 djcelery 和 kombu.transport.django, 還有 app 應(yīng)用。

- project/project/ settings.py:

?
1
2
3
4
5
6
7
8
9
10
11
import djcelery
 
djcelery.setup_loader()
BROKER_URL = 'django://'
 
INSTALLED_APP = (
 ...
 'app'
 'djcelery',
 'kombu.transport.django',
)

新建 celery.py 創(chuàng)建一個 celery 應(yīng)用,并添加以下內(nèi)容

- project/project/ celery.py:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 相對路徑導(dǎo)入, 防止導(dǎo)入 celery 時沖突
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
 
# 讓 celery 能找到 django 項目
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
# 創(chuàng)建一個 celery 應(yīng)用
app = Celery('project')
 
# 導(dǎo)入配置
app.config_from_object('django.conf:settings')
# 自動發(fā)現(xiàn) task
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
 
@app.task(bind=True)
def debug_task(self):
 
 print('Request: {0!r}'.format(self.request))

 

- project/project/ __init__.py:

?
1
2
3
4
5
from __future__ import absolute_import
 
# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app

在 django app 中添加任務(wù),文件名必須是 tasks.py, 在普通 python 函數(shù)前加一個 @task() 裝飾器就變成了 celery task

-project/app/ tasks.py:

?
1
2
3
4
5
6
7
8
9
from celery.task import task
from time import sleep
 
@task()
def helloWorld():
 print 'helloWorld'
 sleep(10)
 print 'helloWorld'
 return 'helloCelery'

這樣,一個任務(wù)就創(chuàng)建成功了,只剩下在 view 中調(diào)用了

-project/app view.py:

?
1
2
3
4
5
6
7
from tasks.py import helloWorld
 
def home():
 
 helloWorld.delay()
 
 return HttpResponse('helloCelery')

最后

?
1
python manage.py migrate

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://www.cnblogs.com/peng104/p/10580720.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品久久久久久久久久久 | 精彩视频一区二区三区 | 久久91精品国产 | 国产精品久久久久久久久 | 五月婷婷精品 | 这里只有精品视频 | 三级在线观看网站 | 中文字幕免费在线观看视频 | 野花国产精品入口 | 日韩激情一区二区三区 | 天堂中文 | 午夜视频污 | 一区二区福利 | 久久综合久久综合久久综合 | 亚洲日本视频 | 欧美.com | 正在播放国产精品 | 亚洲欧美日韩一区 | 91在线观看免费观看 | 欧美国产精品一区二区三区 | 中文字幕日韩有码 | 欧美色欧美亚洲另类七区 | 午夜激情影院 | 青青草在线视频免费观看 | 成人乱人乱一区二区三区 | 久久久精品网 | 欧美日韩综合视频 | 久久久精品网 | 久久精品99| 日日爽夜夜操 | 午夜私人影院在线观看 | 色女人的天堂 | 国产乱码精品一区二区三区五月婷 | 国产精品久久久久一区二区三区 | 国产精品免费久久久久久久久久中文 | 久久精品一区二区国产 | 毛片一级av | 在线观看欧美日韩 | 久在线视频 | 国产98色在线 | 日韩 | 中文字幕人成乱码在线观看 |