国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

如何在Django中設置定時任務的方法示例

2020-02-16 00:43:55
字體:
來源:轉載
供稿:網友

Django 作為后端Web開發框架,有時候我們需要用到定時任務來或者固定頻次的任務來執行某段代碼,這時我們就要用到Celery了。Django中有一個中間件:Django-celery

環境:

Python 3.6 Django為小于1.8版本 Celery為3.1版本

第一步安裝:django-celery

pip install django-celery

第二步:配置celery和任務

創建測試django環境:

django-admin.py createproject testdjango-admin.py startapp demo

創建好的項目布局如下:

- proj/ - manage.py - proj/  - __init__.py  - celery.py  - settings.py  - urls.py - demo/  - migrations  - __init__.py  - admin.py  - apps.py  - models.py  - tasks.py  - tests.py  - views.py

2.1 配置celery.py文件

需要替換的內容,我都在對應的行后提示了,剩下的內容默認就好

創建test/test/celery.py文件,內容如下:

from __future__ import absolute_import, unicode_literalsimport osfrom celery import Celery # set the default Django settings module for the 'celery' program.os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')  # “proj.settings”替換為你的項目信息:test.settings app = Celery('proj') # 這里的proj替換為你的項目名稱:test # Using a string here means the worker doesn't have to serialize# the configuration object to child processes.# - namespace='CELERY' means all celery-related configuration keys#  should have a `CELERY_` prefix.app.config_from_object('django.conf:settings', namespace='CELERY') # Load task modules from all registered Django app configs.app.autodiscover_tasks()  @app.task(bind=True)def debug_task(self):  print('Request: {0!r}'.format(self.request))

2.2 配置項目的init.py中配置celery內容

打開test/test/__init_.py文件,添加內容:

from __future__ import absolute_import, unicode_literals # 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 __all__ = ('celery_app',)

2.3 在task.py中添加計劃任務

編輯test/demo/task.py文件,添加計劃任務,內容如下:

# Create your tasks herefrom __future__ import absolute_import, unicode_literalsfrom celery import shared_task  @shared_taskdef add(x, y):  return x + y  @shared_taskdef mul(x, y):  return x * y  @shared_taskdef xsum(numbers):  return sum(numbers)

第三步:任務執行

運行django項目: python manage.py runserver

3.1 后臺添加計劃任務

訪問“http://localhost:8000/admin/”,在celery的管理頁面里,選擇Periodic tasks,進行任務添加。選擇對應的任務,設置定時或者周期時間

3.2 啟動定時的celery服務

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彩票| 西吉县| 宿州市| 虞城县| 甘孜县| 阳山县| 大同县| 开远市| 望都县| 奉新县| 辉县市| 航空| 内丘县| 苏州市| 天祝| 泰和县| 龙门县| 安仁县| 商城县| 简阳市| 达州市| 伊宁市| 高阳县| 台州市| 广南县| 乃东县| 山丹县| 新巴尔虎左旗| 旬邑县| 德安县| 九江市| 寿光市| 卢氏县| 清水县| 南丰县| 北碚区| 太原市| 平邑县| 得荣县| 呼图壁县| 手游|