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

python多進(jìn)程重復(fù)加載的解決方式

 更新時間:2019年12月13日 10:27:33   作者:ShellCollector  
今天小編就為大家分享一篇python多進(jìn)程重復(fù)加載的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

flask多進(jìn)程會引起重復(fù)加載,

解決方法:把耗資源的加載挪到函數(shù)里面或者類里面,就不會重復(fù)加載資源了。

測試發(fā)現(xiàn),不是flask引起的,是多進(jìn)程會引起重復(fù)加載python文件。

把flask注釋掉,也會重復(fù)加載。

# autotrade/__init__.py
# __init__.py 定義全局的app路由
# 然后將其他模塊由app裝飾后的函數(shù)導(dǎo)入,flask即可識別所有的請求入口
import time
 
from flask import Flask
from multiprocessing import Process
 
# 配置全局app
 
# 導(dǎo)入index中定義的所有函數(shù)
# from autotrade.server.index import *
print("import will repeat")
def run_index():
  print("run_index once")
  app = Flask(__name__)
  # 啟動web服務(wù)器,使用多線程方式,接收所有http請求
  app.run(host='0.0.0.0', port=5000, threaded=True,debug=False)
 
def run_orders():
  # 啟動查詢交易程序
  while True:
    print('執(zhí)行相應(yīng)的交易程序')
    time.sleep(3)
 
def main():
  # 主程序
  # 創(chuàng)建子進(jìn)程
  jobs = []
  jobs.append(Process(target=run_index))
  # jobs.append(Process(target=run_orders))
  # 啟動子進(jìn)程
  for job in jobs:
    job.start()
 
  # 等待子進(jìn)程結(jié)束返回
  for job in jobs:
    job.join()
 
if __name__ == '__main__':
  # run_index()
  main()

一般情況,把需要加載的封裝到函數(shù)或者類中就可以了,

但是有一個例外:就是SQLAlchemy

必須在py文件中實(shí)例化,

from flask_login import LoginManager
from flask_mail import Mail
from flask_socketio import SocketIO
from flask_migrate import Migrate
from flask_rq2 import RQ
from flask_wtf.csrf import CSRFProtect

from monitor.common.storage import LocalStorage, QiniuStorage, ObjectStorage
import config.global_var as gl_var
# from monitor.common.es_search import ESearchEngine

QINIU_AVAILABLE = gl_var.get_value("qiniu_available")
OSS_AVAILABLE = gl_var.get_value("oss_available")
REDIS_URI = gl_var.get_value("redis_uri")
BASEDIR = gl_var.get_value("basedir")
sbdwl = gl_var.get_value("sbdwl")


class Redis(object):

  def __init__(self):
    self._db = None

  def init_app(self, uri=REDIS_URI):
    self._db = _redis.Redis.from_url(uri)

  @property
  def db(self):
    return self._db

print("import foundation")

import threading
class Singleton(object):
  _instance_lock=threading.Lock()
  def __init__(self):
    pass
    # import time
    # print("sleep")
    # time.sleep(1)
  def __new__(cls, *args, **kwargs):
    if not hasattr(Singleton,"_instance"):
      with Singleton._instance_lock:
        if not hasattr(Singleton,"_instance"):
          print("create _instance----------------------------")
          Singleton._instance=object.__new__(cls,*args,**kwargs)

          app = Flask(__name__)
          Singleton._instance.db = SQLAlchemy(app)
          Singleton._instance.login_manager = LoginManager()

解決方法:把啟動換到一個新文件,然后在函數(shù)中調(diào)用這個文件,import也放在函數(shù)內(nèi)部。

以上這篇python多進(jìn)程重復(fù)加載的解決方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux下通過python獲取本機(jī)ip方法示例

    Linux下通過python獲取本機(jī)ip方法示例

    這篇文章主要給大家介紹了關(guān)于在Linux下通過python獲取本機(jī)ip的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python關(guān)于迭代器的使用

    Python關(guān)于迭代器的使用

    這篇文章主要介紹了Python關(guān)于迭代器的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python完成哈夫曼樹編碼過程及原理詳解

    Python完成哈夫曼樹編碼過程及原理詳解

    這篇文章主要介紹了Python完成哈夫曼樹編碼過程及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)人機(jī)中國象棋游戲

    Python實(shí)現(xiàn)人機(jī)中國象棋游戲

    中國象棋是一種古老的棋類游戲,大約有兩千年的歷史。本文將介紹如何通過Python中的Pygame模塊實(shí)現(xiàn)人機(jī)中國象棋游戲,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • 淺談python的深淺拷貝以及fromkeys的用法

    淺談python的深淺拷貝以及fromkeys的用法

    這篇文章主要介紹了python的深淺拷貝以及fromkeys的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • pyinstaller生成的exe文件啟動時間漫長的原因

    pyinstaller生成的exe文件啟動時間漫長的原因

    本文主要介紹了pyinstaller生成的exe文件啟動時間漫長的原因,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • python遞歸實(shí)現(xiàn)快速排序

    python遞歸實(shí)現(xiàn)快速排序

    這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)快速排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 如何正確理解python裝飾器

    如何正確理解python裝飾器

    裝飾器(Decorators)是 Python 的一個重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短
    2021-06-06
  • Python替換Excel表格中的空值或指定值的實(shí)現(xiàn)

    Python替換Excel表格中的空值或指定值的實(shí)現(xiàn)

    本文介紹了使用Python的pandas庫結(jié)合openpyxl來批量替換Excel表格中的空值或指定值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • pyinstaller參數(shù)介紹以及總結(jié)詳解

    pyinstaller參數(shù)介紹以及總結(jié)詳解

    這篇文章主要介紹了pyinstaller參數(shù)介紹以及總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

汪清县| 佳木斯市| 建湖县| 桓仁| 庐江县| 大洼县| 拉孜县| 巴东县| 崇礼县| 娄底市| 西吉县| 永仁县| 安阳县| 阜宁县| 宁化县| 古浪县| 临湘市| 贵州省| 田东县| 兰坪| 昌宁县| 乌兰浩特市| 论坛| 栖霞市| 兴国县| 阳高县| 伊吾县| 志丹县| 隆尧县| 平潭县| 嘉定区| 潞西市| 鹿邑县| 镇平县| 东乡| 林周县| 招远市| 渝北区| 思茅市| 洪江市| 延长县|