add:新增监控模块
This commit is contained in:
43
catch/monitor/model/Crontab.php
Normal file
43
catch/monitor/model/Crontab.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CatchAdmin [Just Like ~ ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: JaguarJack [ njphper@gmail.com ]
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace catchAdmin\monitor\model;
|
||||
|
||||
use catchAdmin\monitor\model\search\CrontabSearch;
|
||||
use catcher\base\CatchModel as Model;
|
||||
|
||||
class Crontab extends Model
|
||||
{
|
||||
use CrontabSearch;
|
||||
|
||||
protected $name = 'crontab';
|
||||
|
||||
protected $field = [
|
||||
'id', //
|
||||
'name', // 任务名称
|
||||
'group', // 1 默认 2 系统
|
||||
'task', // 任务名称
|
||||
'cron', // cron 表达式
|
||||
'tactics', // 1 立即执行 2 执行一次 3 放弃执行
|
||||
'status', // 1 正常 2 禁用
|
||||
'remark', // 备注
|
||||
'creator_id', // 创建人ID
|
||||
'created_at', // 创建时间
|
||||
'updated_at', // 更新时间
|
||||
'deleted_at', // 软删除
|
||||
];
|
||||
|
||||
|
||||
const EXECUTE_IMMEDIATELY = 1; // 立即执行
|
||||
const EXECUTE_ONCE = 2; // 执行一次
|
||||
const EXECUTE_FORBIDDEN = 3; // 停止执行
|
||||
|
||||
}
|
53
catch/monitor/model/CrontabLog.php
Normal file
53
catch/monitor/model/CrontabLog.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CatchAdmin [Just Like ~ ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: JaguarJack [ njphper@gmail.com ]
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace catchAdmin\monitor\model;
|
||||
|
||||
use catchAdmin\monitor\model\search\CrontabLogSearch;
|
||||
use catcher\base\CatchModel;
|
||||
|
||||
class CrontabLog extends CatchModel
|
||||
{
|
||||
use CrontabLogSearch;
|
||||
|
||||
protected $name = 'crontab_log';
|
||||
|
||||
protected $field = [
|
||||
'id', //
|
||||
'crontab_id', // crontab 任务ID
|
||||
'used_time', // 任务消耗时间
|
||||
'status', // 1 成功 2 失败
|
||||
'error_message', // 错误信息
|
||||
'created_at', // 创建时间
|
||||
'updated_at', // 更新时间
|
||||
'deleted_at', // 软删除
|
||||
];
|
||||
|
||||
|
||||
const SUCCESS = 1;
|
||||
const FAILED = 2;
|
||||
|
||||
/**
|
||||
* 获取日志列表
|
||||
*
|
||||
* @time 2020年09月15日
|
||||
* @throws \think\db\exception\DbException
|
||||
* @return mixed|\think\Paginator
|
||||
*/
|
||||
public function getList()
|
||||
{
|
||||
return $this->catchLeftJoin(Crontab::class, 'id', 'crontab_id', ['name', 'group', 'task'])
|
||||
->catchSearch()
|
||||
->catchOrder()
|
||||
->field(['used_time', 'error_message', 'crontab_log.status', 'crontab_log.id', 'crontab_log.created_at'])
|
||||
->paginate();
|
||||
}
|
||||
}
|
39
catch/monitor/model/search/CrontabLogSearch.php
Normal file
39
catch/monitor/model/search/CrontabLogSearch.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CatchAdmin [Just Like ~ ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: JaguarJack [ njphper@gmail.com ]
|
||||
// +----------------------------------------------------------------------
|
||||
namespace catchAdmin\monitor\model\search;
|
||||
|
||||
trait CrontabLogSearch
|
||||
{
|
||||
public function searchCrontabIdAttr($query, $value, $data)
|
||||
{
|
||||
return $query->where('crontab_id', $value);
|
||||
}
|
||||
|
||||
public function searchNameAttr($query, $value, $data)
|
||||
{
|
||||
return $query->whereLike('crontab.name', $value);
|
||||
}
|
||||
|
||||
public function searchStatusAttr($query, $value, $data)
|
||||
{
|
||||
return $query->where('status', $value);
|
||||
}
|
||||
|
||||
public function searchStartAtAttr($query, $value, $data)
|
||||
{
|
||||
return $query->where($this->aliasField('created_at'), '>=', strtotime($value));
|
||||
}
|
||||
|
||||
public function searchEndAtAttr($query, $value, $data)
|
||||
{
|
||||
return $query->where($this->aliasField('created_at'), '<=', strtotime($value));
|
||||
}
|
||||
}
|
24
catch/monitor/model/search/CrontabSearch.php
Normal file
24
catch/monitor/model/search/CrontabSearch.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CatchAdmin [Just Like ~ ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: JaguarJack [ njphper@gmail.com ]
|
||||
// +----------------------------------------------------------------------
|
||||
namespace catchAdmin\monitor\model\search;
|
||||
|
||||
trait CrontabSearch
|
||||
{
|
||||
public function searchNameAttr($query, $value, $data)
|
||||
{
|
||||
return $query->whereLike('name', $value);
|
||||
}
|
||||
|
||||
public function searchStatusAttr($query, $value, $data)
|
||||
{
|
||||
return $query->whereLike('status', $value);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user