mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-23 01:54:01 +08:00
update
This commit is contained in:
@@ -8,12 +8,16 @@
|
||||
# Author: midoks <midoks@163.com>
|
||||
# ---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
from .initdb import *
|
||||
|
||||
from .logs import addLog
|
||||
|
||||
from .option import getOption,getOptionByJson,setOption
|
||||
from .option import setOption
|
||||
|
||||
from .sites import getSitesCount
|
||||
from .task import getTaskCount
|
||||
|
||||
|
||||
from .task import addTask
|
||||
from .task import getTaskCount,getTaskUnexecutedCount,getTaskList,getTaskFirstByRun
|
||||
from .task import setTaskStatus,setTaskData
|
||||
|
||||
|
||||
@@ -156,8 +156,8 @@ class Tasks(db.Model):
|
||||
__tablename__ = 'tasks'
|
||||
id = db.Column(db.Integer(), primary_key=True,autoincrement=True, comment="ID")
|
||||
name = db.Column(db.TEXT, unique=False, nullable=False, comment="任务名称")
|
||||
type = db.Column(db.TEXT, unique=False, nullable=False, comment="域名")
|
||||
execstr = db.Column(db.TEXT, unique=False, nullable=False, comment="执行命令")
|
||||
type = db.Column(db.TEXT, unique=False, nullable=False, comment="类型")
|
||||
cmd = db.Column(db.TEXT, unique=False, nullable=False, comment="执行命令")
|
||||
start = db.Column(db.Integer(), unique=False, nullable=True, comment="开始执行时间")
|
||||
end = db.Column(db.Integer(), unique=False, nullable=True, comment="结束执行时间")
|
||||
status = db.Column(db.Integer(), unique=False, nullable=True, default=1, comment="状态")
|
||||
|
||||
+99
-4
@@ -10,10 +10,105 @@
|
||||
|
||||
from admin.model import db, Tasks
|
||||
|
||||
|
||||
import core.mw as mw
|
||||
|
||||
def getTaskCount(
|
||||
status: str | None = None
|
||||
) -> int:
|
||||
status: int | None = -1
|
||||
) -> int:
|
||||
return Tasks.query.filter(Tasks.status==status).count()
|
||||
|
||||
# 未执行任务总数
|
||||
def getTaskUnexecutedCount() -> int:
|
||||
return Tasks.query.filter(Tasks.status!=1).count()
|
||||
|
||||
|
||||
def addTask(
|
||||
name: str | None = '常用任务',
|
||||
cmd: str | None = None,
|
||||
type: str | None = 'execshell',
|
||||
status: int | None = 0,
|
||||
):
|
||||
'''
|
||||
添加后台任务
|
||||
:name -> str 类型
|
||||
:cmd -> str 日志内容 (必填)
|
||||
:type -> str 用户ID
|
||||
'''
|
||||
if cmd is None:
|
||||
return False
|
||||
|
||||
add_time = mw.formatDate()
|
||||
add_data = Tasks(
|
||||
name=name,
|
||||
cmd=cmd,
|
||||
type=type,
|
||||
start=0,
|
||||
end=0,
|
||||
status=status,
|
||||
add_time=add_time)
|
||||
db.session.add(add_data)
|
||||
db.session.commit()
|
||||
return True
|
||||
|
||||
def getTaskFirstByRun() -> None:
|
||||
item = Tasks.query.filter(Tasks.status==-1).order_by(Tasks.id.asc()).first()
|
||||
|
||||
if item is None:
|
||||
return None
|
||||
row = {}
|
||||
row['id'] = item.id
|
||||
row['name'] = item.name
|
||||
row['type'] = item.type
|
||||
row['cmd'] = item.cmd
|
||||
row['start'] = item.start
|
||||
row['end'] = item.end
|
||||
row['status'] = item.status
|
||||
row['add_time'] = item.add_time
|
||||
return row
|
||||
|
||||
def getTaskList(
|
||||
status: int | None = 1,
|
||||
page: int | None = 1,
|
||||
size: int | None = 10,
|
||||
):
|
||||
pagination = Tasks.query.filter(Tasks.status==status).order_by(Tasks.id.asc()).paginate(page=int(page), per_page=int(size))
|
||||
|
||||
rows = []
|
||||
for item in pagination.items:
|
||||
t = {}
|
||||
t['id'] = item.id
|
||||
t['name'] = item.name
|
||||
t['type'] = item.type
|
||||
t['cmd'] = item.cmd
|
||||
t['start'] = item.start
|
||||
t['end'] = item.end
|
||||
t['status'] = item.status
|
||||
t['add_time'] = item.add_time
|
||||
rows.append(t)
|
||||
return rows
|
||||
|
||||
|
||||
|
||||
|
||||
def setTaskStatus(id,
|
||||
status: int | None = 0
|
||||
):
|
||||
Tasks.query.filter(Tasks.id==id).update({'status':status})
|
||||
db.session.commit()
|
||||
return True
|
||||
|
||||
def setTaskData(id,
|
||||
start: int | None = None,
|
||||
end: int | None = None,
|
||||
):
|
||||
update_data = {}
|
||||
|
||||
if start is not None:
|
||||
update_data['start'] = start
|
||||
if end is not None:
|
||||
update_data['end'] = end
|
||||
|
||||
Tasks.query.filter(Tasks.id==id).update(update_data)
|
||||
db.session.commit()
|
||||
return True
|
||||
|
||||
return Tasks.query.filter_by().count()
|
||||
Reference in New Issue
Block a user