gevent模式

pull/109/head
Mr Chen 6 years ago
parent e0e749c62c
commit bec0f0912f
  1. 48
      class/core/plugins_api.py
  2. 5
      cli.sh
  3. 7
      plugins/webssh/js/webssh.js
  4. 2
      route/__init__.py
  5. 6
      setting.py

@ -70,7 +70,6 @@ class plugins_api:
def indexListApi(self): def indexListApi(self):
data = self.getIndexList() data = self.getIndexList()
# print data
return public.getJson(data) return public.getJson(data)
def indexSortApi(self): def indexSortApi(self):
@ -251,23 +250,33 @@ class plugins_api:
else: else:
return_dict[i] = False return_dict[i] = False
def checkStatusThreads(self, plugins_info): def checkStatusThreads(self, info, i):
manager = multiprocessing.Manager() if not info['setup']:
return_dict = manager.dict() return False
jobs = [] data = self.run(info['name'], 'status', info['setup_version'])
ntmp_list = range(len(plugins_info)) if data[0] == 'start':
for i in ntmp_list: return True
p = multiprocessing.Process( else:
target=self.checkStatusProcess, args=(plugins_info[i], i, return_dict)) return False
jobs.append(p)
p.start()
for proc in jobs:
proc.join()
returnData = return_dict.values() def checkStatusMThreads(self, plugins_info):
for i in ntmp_list: try:
plugins_info[i]['status'] = returnData[i] threads = []
ntmp_list = range(len(plugins_info))
for i in ntmp_list:
t = pa_thread(self.checkStatusThreads, (plugins_info[i], i))
threads.append(t)
for i in ntmp_list:
threads[i].start()
for i in ntmp_list:
threads[i].join()
for i in ntmp_list:
t = threads[i].getResult()
plugins_info[i]['status'] = t
except Exception as e:
print 'checkStatusMThreads:', str(e)
return plugins_info return plugins_info
@ -453,7 +462,7 @@ class plugins_api:
end = start + pageSize end = start + pageSize
_plugins_info = plugins_info[start:end] _plugins_info = plugins_info[start:end]
# _plugins_info = self.checkStatusMProcess(_plugins_info) _plugins_info = self.checkStatusMThreads(_plugins_info)
return (_plugins_info, len(plugins_info)) return (_plugins_info, len(plugins_info))
def makeListThread(self, data, sType='0'): def makeListThread(self, data, sType='0'):
@ -601,7 +610,6 @@ class plugins_api:
public.writeFile(self.__index, '[]') public.writeFile(self.__index, '[]')
indexList = json.loads(public.readFile(self.__index)) indexList = json.loads(public.readFile(self.__index))
print self.__index, indexList
plist = [] plist = []
app = [] app = []
for i in indexList: for i in indexList:
@ -623,7 +631,9 @@ class plugins_api:
except Exception, e: except Exception, e:
print 'getIndexList:', e print 'getIndexList:', e
# 使用gevent模式时,无法使用多进程
# plist = self.checkStatusMProcess(plist) # plist = self.checkStatusMProcess(plist)
plist = self.checkStatusMThreads(plist)
return plist return plist
def setIndexSort(self, sort): def setIndexSort(self, sort):

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/lib/python2.7/bin
@ -13,7 +13,8 @@ mw_start_debug(){
# gunicorn -c setting.py app:app # gunicorn -c setting.py app:app
python task.py & python task.py &
# gunicorn -b :7200 app:app # gunicorn -b :7200 app:app
gunicorn -b :7200 -k gevent app:app gunicorn -b :7200 -k gevent -w 1 app:app
# gunicorn -b :7200 -k eventlet -w 1 app:app
# gunicorn -c setting.py app:app # gunicorn -c setting.py app:app
} }

@ -1,12 +1,15 @@
function web_shell2() { function web_shell2() {
var termCols = 50; var termCols = 65;
var termRows = 12; var termRows = 18;
var sendTotal = 0; var sendTotal = 0;
if(!socket)socket = io.connect(); if(!socket)socket = io.connect();
var term = new Terminal({ cols: termCols, rows: termRows, screenKeys: true, useStyle: true}); var term = new Terminal({ cols: termCols, rows: termRows, screenKeys: true, useStyle: true});
console.log(term);
// term.fit()
term.open(); term.open();
gterm = term gterm = term
term.setOption('cursorBlink', true); term.setOption('cursorBlink', true);
term.setOption('fontSize', 10);
socket.on('server_response', function (data) { socket.on('server_response', function (data) {
console.log('server_response',data); console.log('server_response',data);

@ -100,7 +100,7 @@ def publicObject(toObject, func, action=None, get=None):
return data return data
except Exception as e: except Exception as e:
data = {'msg': '访问异常:' + str(e) + '!', "status": False} data = {'msg': '访问异常:' + str(e) + '!', "status": False}
return public.getInfo(data) return public.getJson(data)
@app.route("/test") @app.route("/test")

@ -10,9 +10,9 @@ sys.path.append("/usr/local/lib/python2.7/site-packages")
import public import public
import system_api import system_api
# cpu_info = system_api.system_api().getCpuInfo() cpu_info = system_api.system_api().getCpuInfo()
# workers = cpu_info[1] + 1 workers = cpu_info[1] + 1
workers = 1 # workers = 2
if not os.path.exists(os.getcwd() + '/logs'): if not os.path.exists(os.getcwd() + '/logs'):

Loading…
Cancel
Save