最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在django-xadmin中APScheduler的啟動初始化實(shí)例

 更新時(shí)間:2019年11月15日 16:34:43   作者:roystime  
今天小編就為大家分享一篇在django-xadmin中APScheduler的啟動初始化實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

環(huán)境: python3.5.x + django1.9.x + xadmin-for-python3

APScheduler做為一個(gè)輕量級和使用量很多的后臺任務(wù)計(jì)劃(scheduler)包,可以方便的隨系統(tǒng)啟動/關(guān)閉而啟動/關(guān)閉,如果整合到django中,啟動APScheduler的代碼該寫在哪里好呢,

以下幾個(gè)方式供參考:

1. (推薦)自定義Middleware,非常類似Java中的Filter,缺點(diǎn)是要有URL訪問才會觸發(fā)啟動,如果系統(tǒng)還沒有啟動完就訪問了URL會觸發(fā)__init__多次調(diào)用(多次http同時(shí)請求造成),可以通過threading的lock同步代碼和狀態(tài)限制執(zhí)行一次

class StartupMiddleware(object):
 def __init__(self):
  #啟動后臺任務(wù)APScheduler
  init_scheduler()
 
  from django.core.exceptions import MiddlewareNotUsed
  raise MiddlewareNotUsed #TIP 拋出此異常,則Django將從 middleware 棧中移出該 middleware,請求就不會經(jīng)過此middleware
 
 def process_request(self, request):
  print("*****enter startup middleware")
scheduler = None
def init_scheduler():
 global scheduler
 lock = threading.Lock() # TIP 多線程同步代碼
 with lock:
  if scheduler and scheduler.running:
   print('*****APScheduler is already started, pid:{}, tid:{}'.format(os.getpid(), threading.current_thread().getName()))
   return scheduler
  executors = {
   'default': ThreadPoolExecutor(5),#線程模式下進(jìn)程池大小
   'processpool': ProcessPoolExecutor(5),#進(jìn)程模式下進(jìn)程池大小
  }
  job_defaults = {
   'coalesce': True, #如果有幾次未執(zhí)行,條件可以時(shí)是否只執(zhí)行一次
   'max_instances': 1, #同一個(gè)job同一時(shí)間最多有幾個(gè)實(shí)例再跑
  }
 
  scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults, timezone=timezone(TIME_ZONE))
 
  scheduler.add_job(...)
  scheduler.start()
  return scheduler

2. 應(yīng)用中的settings.py文件,django在開發(fā)環(huán)境默認(rèn)會啟動兩個(gè)python進(jìn)程(對于開發(fā)環(huán)境還是很實(shí)用的,改代碼后會自動重啟),放settings.py中的代碼會被這兩個(gè)python進(jìn)程都調(diào)用一次,當(dāng)然可以通過--reload參數(shù)只啟動一個(gè)python進(jìn)程,另外加載settings.py時(shí)部分app還未loaded,限制了應(yīng)用的代碼。

3. 頂層的urls文件, 這個(gè)不管你django啟動時(shí)是一個(gè)進(jìn)程還是兩個(gè)進(jìn)程,urls文件也只會被加載一次,但存在的缺陷就是在執(zhí)行makemigrations這樣的命令時(shí),會同樣出現(xiàn)app還未loaded的錯(cuò)...

以上這篇在django-xadmin中APScheduler的啟動初始化實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python爬蟲流程基礎(chǔ)示例零基礎(chǔ)學(xué)習(xí)

    python爬蟲流程基礎(chǔ)示例零基礎(chǔ)學(xué)習(xí)

    這篇文章主要為大家介紹了python爬蟲流程基礎(chǔ)示例零基礎(chǔ)學(xué)習(xí),我們將討論 Python 網(wǎng)絡(luò)編程中的爬蟲基礎(chǔ),作為一個(gè)完全的初學(xué)者,你將學(xué)習(xí)到爬蟲的基本概念、常用庫以及如何編寫一個(gè)簡單的爬蟲
    2023-06-06
  • python進(jìn)階之多線程對同一個(gè)全局變量的處理方法

    python進(jìn)階之多線程對同一個(gè)全局變量的處理方法

    今天小編就為大家分享一篇python進(jìn)階之多線程對同一個(gè)全局變量的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python3列表List入門知識附實(shí)例

    Python3列表List入門知識附實(shí)例

    序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推
    2020-02-02
  • PyTorch中torch.tensor()和torch.to_tensor()的區(qū)別

    PyTorch中torch.tensor()和torch.to_tensor()的區(qū)別

    在Pytorch中Tensor和tensor都用于生成新的張量,但二者并不相同,下面這篇文章主要給大家介紹了關(guān)于PyTorch中torch.tensor()和torch.to_tensor()區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 跟老齊學(xué)Python之讓人歡喜讓人憂的迭代

    跟老齊學(xué)Python之讓人歡喜讓人憂的迭代

    跟一些比較牛X的程序員交流,經(jīng)常聽到他們嘴里冒出一個(gè)不標(biāo)準(zhǔn)的英文單詞,而loop、iterate、traversal和recursion如果不在其內(nèi),總覺得他還不夠牛X。當(dāng)讓,真正牛X的絕對不會這么說的,他們只是說“循環(huán)、迭代、遍歷、遞歸”,然后再問“這個(gè)你懂嗎?”。
    2014-10-10
  • Python定時(shí)發(fā)送消息的腳本:每天跟你女朋友說晚安

    Python定時(shí)發(fā)送消息的腳本:每天跟你女朋友說晚安

    今天小編就為大家分享一篇關(guān)于Python定時(shí)發(fā)送消息的腳本:每天跟你女朋友說晚安的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Python 序列化和反序列化庫 MarshMallow 的用法實(shí)例代碼

    Python 序列化和反序列化庫 MarshMallow 的用法實(shí)例代碼

    marshmallow(Object serialization and deserialization, lightweight and fluffy.)用于對對象進(jìn)行序列化和反序列化,并同步進(jìn)行數(shù)據(jù)驗(yàn)證。這篇文章主要介紹了Python 序列化和反序列化庫 MarshMallow 的用法實(shí)例代碼,需要的朋友可以參考下
    2020-02-02
  • PyTorch使用自動微分模塊的方法和理解

    PyTorch使用自動微分模塊的方法和理解

    自動微分模塊Autograd為張量增加了自動求導(dǎo)功能,是神經(jīng)網(wǎng)絡(luò)訓(xùn)練不可或缺的組成部分,通過backward方法和grad屬性,實(shí)現(xiàn)梯度的計(jì)算和訪問,本小節(jié)主要講解了 PyTorch 中非常重要的自動微分模塊的使用和理解,感興趣的朋友一起看看吧
    2024-09-09
  • Python升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法

    Python升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法

    這篇文章主要給大家介紹了因?yàn)镻ython升級導(dǎo)致yum、pip報(bào)錯(cuò)的解決方法,文中通過示例代碼將解決的方法介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09
  • 在Django中限制已登錄用戶的訪問的方法

    在Django中限制已登錄用戶的訪問的方法

    這篇文章主要介紹了在Django中限制已登錄用戶的訪問的方法,Django是最具人氣的Python開發(fā)框架,需要的朋友可以參考下
    2015-07-07

最新評論

黔西| 醴陵市| 三门县| 苗栗市| 蓬莱市| 平顶山市| 城市| 双峰县| 石嘴山市| 大冶市| 黄陵县| 宿松县| 连州市| 定日县| 成安县| 巩留县| 三都| 峨边| 新沂市| 门源| 南皮县| 精河县| 循化| 长寿区| 浦城县| 资兴市| 资中县| 大悟县| 玛纳斯县| 同江市| 福贡县| 宜州市| 涡阳县| 万盛区| 霍林郭勒市| 健康| 炉霍县| 五峰| 嫩江县| 莱州市| 吴川市|