欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解django中使用定時(shí)任務(wù)的方法

 更新時(shí)間:2018年09月27日 08:45:13   投稿:laozhang  
在本篇文章中我們給大家介紹了關(guān)于django中使用定時(shí)任務(wù)的方法的相關(guān)知識點(diǎn),有需要的朋友們參考下。

今天介紹在django中使用定時(shí)任務(wù)的兩種方式。

方式一: APScheduler

1)安裝:

pip install apscheduler

2)使用:

from apscheduler.scheduler import Scheduler
from django.core.cache import cache
# 實(shí)例化
sched = Scheduler()  
 
# 每30秒執(zhí)行一次
@sched.interval_schedule(seconds=30)
def sched_test():
  """
  測試-定時(shí)將隨機(jī)數(shù)保存到redis中
  :return:
  """
  seed = "123456789"
  sa = []
  for i in range(4):
    sa.append(random.choice(seed))
  code = ''.join(sa)
  cache.set("test_"+code, code)

3)啟動定時(shí)任務(wù)

# 啟動定時(shí)任務(wù)

sched.start()

方式二: django-crontab

1) 安裝:

pip install django-crontab

2) 添加配置到INSTALL_APPS中

INSTALLED_APPS = (
'django_crontab',
)

3) 編寫定時(shí)函數(shù):

在django的app中新建一個(gè)test_crontab.py文件,把需要定時(shí)執(zhí)行的代碼放進(jìn)去

import random
 
from django.core.cache import cache
 
def test():
  """
  測試-定時(shí)將隨機(jī)數(shù)保存到redis中
  :return:
  """
  seed = "123456789"
  sa = []
  for i in range(4):
    sa.append(random.choice(seed))
  code = ''.join(sa)
  cache.set("test_"+code, code)

4)編寫定時(shí)命令

Django為項(xiàng)目中每一個(gè)應(yīng)用下的management/commands目錄中名字沒有以下劃線開始的Python模塊都注冊了一個(gè)manage.py命令, 自定義一個(gè)命令如下: 必須定義一個(gè)繼承自BaseCommand的Command類, 并實(shí)現(xiàn)handle方法。

編寫appname/management/commands/test.py文件

import random
 
from django.core.management.base import BaseCommand
from django.core.cache import cache
 
class Command(BaseCommand):
  """
  自定義命令
  """
  def handle(self, *args, **options):
    """
    自定義命令
    :return:
    """
    seed = "123456789"
    sa = []
    for i in range(4):
      sa.append(random.choice(seed))
    code = ''.join(sa)
    cache.set("test_"+code, code)

定義完成后,執(zhí)行python manage.py test, 會執(zhí)行handle()函數(shù)

5) 在settings.py中增加配置

# 運(yùn)行定時(shí)函數(shù)
CRONJOBS = [
  ('*/1 * * * *', 'appname.test_crontab.test','>>/home/python/test_crontab.log')
]
 
# 運(yùn)行定時(shí)命令
CRONJOBS = [
  ('*/1 * * * *', 'django.core.management.call_command', ['test'], {}, '>> /home/python/test.log'),
]

上面主要有3個(gè)參數(shù),分別表示: 定時(shí)任務(wù)執(zhí)行時(shí)間(間隔), 待執(zhí)行定時(shí)任務(wù), 將定時(shí)任務(wù)的信息追加到文件中
對于熟悉linux中定時(shí)任務(wù)crontab的同學(xué)可能對上面第一個(gè)參數(shù)的語法很親切。上面表示每隔1分鐘執(zhí)行一次代碼。

linux中的定時(shí)任務(wù)crontab的語法如下:

* * * * * command
分鐘(0-59) 小時(shí)(0-23) 每個(gè)月的哪一天(1-31) 月份(1-12) 周幾(0-6) shell腳本或者命令

例子:

0 6 * * * commands >> /tmp/test.log # 每天早上6點(diǎn)執(zhí)行, 并將信息追加到test.log中
0 */2 * * * commands # 每隔2小時(shí)執(zhí)行一次

有興趣的小伙伴可以深入研究下linux的crontab定時(shí)任務(wù)。

6) 添加并啟動定時(shí)任務(wù)

python manage.py crontab add

其它命令:

python manage.py crontab show: 顯示當(dāng)前的定時(shí)任務(wù)
python manage.py crontab remove: 刪除所有定時(shí)任務(wù)

今天的定時(shí)任務(wù)就說到這里,有錯誤之處,歡迎交流指正!

相關(guān)文章

  • Redis持久化機(jī)制實(shí)現(xiàn)原理和流程

    Redis持久化機(jī)制實(shí)現(xiàn)原理和流程

    這篇文章主要介紹了Redis持久化機(jī)制實(shí)現(xiàn)原理和流程,持久化就是把內(nèi)存中的數(shù)據(jù)存放到磁盤中,防止宕機(jī)后內(nèi)存數(shù)據(jù)丟失,需要的朋友可以參考下
    2023-04-04
  • 淺談django model的get和filter方法的區(qū)別(必看篇)

    淺談django model的get和filter方法的區(qū)別(必看篇)

    下面小編就為大家?guī)硪黄獪\談django model的get和filter方法的區(qū)別(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python flask項(xiàng)目入門教程

    Python flask項(xiàng)目入門教程

    flask 是一門使用 python 編寫的后端框架,這篇文章主要介紹了Python flask項(xiàng)目入門教程,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • Python深入學(xué)習(xí)之裝飾器

    Python深入學(xué)習(xí)之裝飾器

    這篇文章主要介紹了Python深入學(xué)習(xí)之裝飾器,裝飾器(decorator)是一種高級Python語法,本文全面介紹了Python中的裝飾器,需要的朋友可以參考下
    2014-08-08
  • python實(shí)現(xiàn)整數(shù)序列求和

    python實(shí)現(xiàn)整數(shù)序列求和

    這篇文章主要介紹了python實(shí)現(xiàn)整數(shù)序列求和,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 如何利用python多線程爬取天氣網(wǎng)站圖片并保存

    如何利用python多線程爬取天氣網(wǎng)站圖片并保存

    最近做個(gè)天 氣方面的APP需要用到一些天氣數(shù)據(jù),所以下面這篇文章主要給大家介紹了關(guān)于如何利用python多線程爬取天氣網(wǎng)站圖片并保存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • 對python中矩陣相加函數(shù)sum()的使用詳解

    對python中矩陣相加函數(shù)sum()的使用詳解

    今天小編就為大家分享一篇對python中矩陣相加函數(shù)sum()的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Sentry的安裝、配置、使用教程(Sentry日志手機(jī)系統(tǒng))

    Sentry的安裝、配置、使用教程(Sentry日志手機(jī)系統(tǒng))

    Sentry?是一個(gè)實(shí)時(shí)事件日志記錄和聚合平臺,由于ExceptionLess官方提供的客戶端只有.Net/.NetCore平臺和js的,本文繼續(xù)介紹另一個(gè)日志收集系統(tǒng)Sentry,感興趣的朋友一起看看吧
    2022-07-07
  • Python實(shí)現(xiàn)讀取文件最后n行的方法

    Python實(shí)現(xiàn)讀取文件最后n行的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)讀取文件最后n行的方法,涉及Python針對文件的讀取、遍歷與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • Pytorch 卷積中的 Input Shape用法

    Pytorch 卷積中的 Input Shape用法

    這篇文章主要介紹了Pytorch 卷積中的 Input Shape用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論