任务功能增强,网站到期功能添加

pull/116/head
midoks 3 years ago
parent d93f7260b5
commit 98ff61a7a9
  1. 2
      .gitignore
  2. 4
      class/core/plugins_api.py
  3. 5
      class/core/site_api.py
  4. 5
      scripts/init.d/mw.tpl
  5. 95
      task.py

2
.gitignore vendored

@ -137,4 +137,4 @@ data/ipv6.pl
data/restart.pl
pip-selfcheck.json
data/ssl.pl
data/edate.pl

@ -123,6 +123,10 @@ class plugins_api:
'execshell', '0', time.strftime('%Y-%m-%d %H:%M:%S'), execstr)
mw.M('tasks').add('id,name,type,status,addtime, execstr', taskAdd)
# 任务执行相关
isTask = mw.getRootDir() + '/tmp/panelTask.pl'
mw.writeFile(isTask, 'True')
return mw.returnJson(True, '已将安装任务添加到队列!')
def uninstallOldApi(self):

@ -128,8 +128,11 @@ class site_api:
def stopApi(self):
mid = request.form.get('id', '')
name = request.form.get('name', '')
path = self.setupPath + '/stop'
return self.stop(self, mid, name)
def stop(self, mid, name):
path = self.setupPath + '/stop'
if not os.path.exists(path):
os.makedirs(path)
mw.writeFile(path + '/index.html',

@ -90,6 +90,11 @@ mw_start()
mw_stop_task()
{
if [ -f $mw_path/tmp/panelTask.pl ];then
echo -e "\033[32mThe task is running and cannot be stopped\033[0m"
return
fi
echo -e "Stopping mw-tasks... \c";
pids=$(ps aux | grep 'task.py'|grep -v grep|awk '{print $2}')
arr=($pids)

@ -70,16 +70,6 @@ def restartMw():
mw.execShell(cmd)
class MyBad():
_msg = None
def __init__(self, msg):
self._msg = msg
def __repr__(self):
return self._msg
def execShell(cmdstring, cwd=None, timeout=None, shell=True):
try:
global logPath
@ -145,42 +135,47 @@ def writeLogs(logMsg):
pass
def runTask():
global isTask
try:
if os.path.exists(isTask):
sql = db.Sql()
sql.table('tasks').where(
"status=?", ('-1',)).setField('status', '0')
taskArr = sql.table('tasks').where("status=?", ('0',)).field(
'id,type,execstr').order("id asc").select()
for value in taskArr:
start = int(time.time())
if not sql.table('tasks').where("id=?", (value['id'],)).count():
continue
sql.table('tasks').where("id=?", (value['id'],)).save(
'status,start', ('-1', start))
if value['type'] == 'download':
argv = value['execstr'].split('|mw|')
downloadFile(argv[0], argv[1])
elif value['type'] == 'execshell':
data = execShell(value['execstr'])
end = int(time.time())
sql.table('tasks').where("id=?", (value['id'],)).save(
'status,end', ('1', end))
if(sql.table('tasks').where("status=?", ('0')).count() < 1):
os.system('rm -f ' + isTask)
except Exception as e:
print(str(e))
# 站点过期检查
siteEdate()
def startTask():
# 任务队列
global isTask
try:
while True:
try:
if os.path.exists(isTask):
# print "run --- !"
sql = db.Sql()
sql.table('tasks').where(
"status=?", ('-1',)).setField('status', '0')
taskArr = sql.table('tasks').where("status=?", ('0',)).field(
'id,type,execstr').order("id asc").select()
# print sql
for value in taskArr:
# print value
start = int(time.time())
if not sql.table('tasks').where("id=?", (value['id'],)).count():
continue
sql.table('tasks').where("id=?", (value['id'],)).save(
'status,start', ('-1', start))
if value['type'] == 'download':
argv = value['execstr'].split('|mw|')
downloadFile(argv[0], argv[1])
elif value['type'] == 'execshell':
execShell(value['execstr'])
end = int(time.time())
sql.table('tasks').where("id=?", (value['id'],)).save(
'status,end', ('1', end))
# if(sql.table('tasks').where("status=?", ('0')).count() < 1):
# os.system('rm -f ' + isTask)
except:
pass
# siteEdate()
runTask()
time.sleep(2)
except:
except Exception as e:
time.sleep(60)
startTask()
@ -197,18 +192,14 @@ def siteEdate():
if oldEdate == mEdate:
return False
edateSites = mw.M('sites').where('edate>? AND edate<? AND (status=? OR status=?)',
('0000-00-00', mEdate, 1, u'正在运行')).field('id,name').select()
import panelSite
siteObject = panelSite.panelSite()
('0000-00-00', mEdate, 1, '正在运行')).field('id,name').select()
import site_api
for site in edateSites:
get = MyBad('')
get.id = site['id']
get.name = site['name']
siteObject.SiteStop(get)
site_api.site_api().stop(site['id'], site['name'])
oldEdate = mEdate
mw.writeFile('data/edate.pl', mEdate)
except:
pass
except Exception as e:
print(str(e))
def systemTask():
@ -311,14 +302,14 @@ def systemTask():
sql.table('cpuio').where("addtime<?", (deltime,)).delete()
data = (networkInfo['up'] / 5, networkInfo['down'] / 5, networkInfo['upTotal'], networkInfo[
'downTotal'], networkInfo['downPackets'], networkInfo['upPackets'], addtime)
'downTotal'], networkInfo['downPackets'], networkInfo['upPackets'], addtime)
sql.table('network').add(
'up,down,total_up,total_down,down_packets,up_packets,addtime', data)
sql.table('network').where(
"addtime<?", (deltime,)).delete()
# if os.path.exists('/proc/diskstats'):
data = (diskInfo['read_count'], diskInfo['write_count'], diskInfo['read_bytes'], diskInfo[
'write_bytes'], diskInfo['read_time'], diskInfo['write_time'], addtime)
'write_bytes'], diskInfo['read_time'], diskInfo['write_time'], addtime)
sql.table('diskio').add(
'read_count,write_count,read_bytes,write_bytes,read_time,write_time,addtime', data)
sql.table('diskio').where(

Loading…
Cancel
Save