您的位置:首頁技術文章
文章詳情頁

python - Django如何監聽啟動,開啟另外后臺線程?

瀏覽:108日期:2022-08-11 13:56:34

問題描述

1. 無法啟動的時候另外啟動一個后臺線程2. 部分代碼如下:

mqtt_bridge/__init__.py

# coding=utf8from bridge import startimport threadingprint ’import %s thread id: %s’ % (’bridge.start’, threading.current_thread().ident)start() # 重復啟動啊

在Install apps里面加入模塊名,在Django啟動的時候會自動導入

INSTALLED_APPS = ( # ’jet.dashboard’, # ’jet’, ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, # Django rest framework ’rest_framework’, ’rest_framework.authtoken’, # my apps ’mqtt_bridge’)3. 控制臺輸出:

import bridge.start thread id: 7124bridge-54 INFO : MQTT client listen loop start! thread id: 8680bridge-28 INFO : MQTT client connected with result code: 0import bridge.start thread id: 8200bridge-54 INFO : MQTT client listen loop start! thread id: 840bridge-28 INFO : MQTT client connected with result code: 0Performing system checks...4. 很明顯這個模塊被導入了兩次,模塊里面的線程也是開啟了兩個,這樣很耗費系統資源。5. 其他解決辦法只能去占有端口,然后判斷是否已經啟動,覺得太低效了。

參考:從Django啟動守護進程

問題解答

回答1:

如果你想在Django的APP中執行某些初始化工作,應該在APP的app.py中自定義配置類,然后重寫ready()方法即可。

Django的應用初始化過程:https://docs.djangoproject.co...

標簽: Python 編程
国产综合久久一区二区三区