c5_labsci/web/admin/rigger/autotask.html
2026-01-27 00:52:00 +08:00

194 lines
6.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<link href="/jscss/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" charset="utf-8" src="/jscss/theme.js"></script>
</head>
<body>
<div class="container">
<form class="search" onsubmit="table.search(this,'btn');return false;">
<ul></ul>
<div>
<div class="sinps"></div>
<div class="sbtns">
<button class="lang btn" type="submit">查询</button>
<a class="lang btn def" onclick="pagehelp()">帮助</a>
</div>
</div>
</form>
<div class='table'>
<div class="loading">Loading...</div>
<div class="list"></div>
<div>
<div class="btmbtn">
<a class="lang btn def" onclick="ciyfn.select_all(table)">全选</a>
<a class="lang btn def" onclick="ciyfn.select_diff(table)">反选</a>
|
<a class="lang btn dag" onclick="ciyfn.select_callfunc(table, this,'del','已选{n}条,确认是否删除?',{},function(json){table.delline(json)})">批量删除</a>
</div>
<div class="page"></div>
</div>
</div>
</div>
<div id="alert_pagehelp" style="display:none;">
<b>设置技巧</b>
<div style="margin: 0 0 1em 1em;">
入口函数,请尽量设置不同的函数名,防止同时引用冲突。<br />
可以通过手动执行调试任务代码,建议用<code>clog()</code>打印变量。<br />
</div>
<b>耗时任务</b>
<div style="margin: 0 0 1em 1em;">
每天/每周/每月等大周期耗时任务,请尽量岔开时间。<br />
每分钟的耗时任务,请优化架构防止分钟耗时,或单独跑进程。<br />
</div>
<b>PHP版本额外配置</b>
<div style="margin: 0 0 1em 1em;">
配置Linux crond。<br />
<kbd>/var/spool/cron/root</kbd>文件中增加一行不要使用curl<br />
* * * * * wget -O mm.php -q http://xxxx/ajax/admin/autotask/task.run<br />
<code></code><br />
* * * * * /usr/bin/php /data/ciyxxx/web/admin/autotask/run.php<br />
<br />
nginx+fpm模式请注意设置fpm的request_terminate_timeout参数防止运行超时。<br />
</div>
</div>
<script type="text/javascript" src="/jscss/ciy.js"></script>
<script type="text/javascript" src="/jscss/ciycmp.js"></script>
<script type="text/javascript" src="/jscss/ciycmp2.js"></script>
<script type="text/javascript" src="/jscss/ciytable.js"></script>
<script type="text/javascript" src="../common.js"></script>
<script type="text/javascript">
'use strict';
var table;
ciyfn.pageload(function () {
$5(document).on('keydown', function (e) {
if (e.ctrlKey && e.keyCode == 83) {//Ctrl+S
e.preventDefault();
var upbtns = $5('.upbtn:not(.def)');
upbtns.each(function (dom) {
menubtn(dom, 'edit');
}, 0.5);
}
});
table = new ciyclass.table({
dom: '.table'
, url: 'init'
, pagecount: 10
, fn_beforedata: function (json) {
json.list = ciyfn.conv_treerow(json.list, 0, 0);
ciyfn.fillsearch({
searchdom: '.search'
, data: json
, liall: '全部'
, lidata: 'autotaskstatus'
, liclick: function (dom) {
table.search(dom, 'li');
}
});
return json;
}
, fn_tdcontent: function (key, datashow, field, data) {
if (key == 'autotaskstatus') {
if (data['runtimes'] > 0)
datashow = datashow.replace('<span ', '<span title="执行开始时间: ' + ciyfn.todatetime(data['runtimes'], 'Y-m-d H:i:s') + '"');
return datashow;
}
if (key == 'name' || key == 'runfunc' || key == 'runparam' || key == 'nexttimes') {
return '<input style="width:100%;" onkeydown="btnset(this)" type="text" name="' + key + '" value="' + datashow + '"/>';
}
if (key == 'runcycle') {
var dat = parseInt(data[key]);
var unit = '';
if (dat < 0) {
dat = -dat;
unit = 'month';
} else {
if (dat % 86400 > 0) {
unit = 'sec';
} else {
dat = parseInt(dat / 86400);
unit = 'day';
}
}
return '<ciy-inputcyc com="runcycle" value="' + data[key] + '" />';
}
if (key == '_btn') {
var html = '<a class="lang btn def upbtn" onclick="menubtn(this, \'edit\')">' + (data['id'] == 0 ? '新增' : '更新') + '</a>';
if (data['id'] > 0) {
if (data['autotaskstatus'] < 90) {
html += '<a class="lang btn dag" onclick="menubtn(this, \'status9\')">禁止</a>';
} else {
html += '<a class="lang btn warn" onclick="menubtn(this, \'status2\')">恢复</a>';
}
html += '<a class="lang btn" onclick="menubtn(this, \'autotskrun\')">执行记录</a>';
html += '<a class="lang btn" onclick="menubtn(this, \'runtask\')">手动执行</a>';
}
return html;
}
}
, fn_done: function () {
var doms = $5('[com=runcycle]');
for (var i = 0; i < doms.length; i++) {
ciycmp({ dom: doms[i] });
}
}
});
table.callpage(1);
});
function btnset(dom) {
var domtr = $5(dom).parent('tr');
$5('.btn.upbtn', domtr).removeClass('def');
}
function pagehelp() {
ciyfn.alert({
title: '页面帮助'
, width: 'pc'
, content: document.getElementById("alert_pagehelp").innerHTML
});
}
function menubtn(dom, btn) {
var trdom = $5(dom).parent('tr');
var id = trdom.attr('data-id');
var postparam = ciyfn.getform(dom, 'TR');
postparam.id = id;
if (btn == 'edit') {
ciyfn.callfastfunc(dom, '', 'update', postparam, function (json) {
$5(dom).addClass('def');
if (id == 0) {
$5('input', trdom).val('');
table.updateline(json);
}
});
}
if (btn == 'status9') {
postparam.status = 90;
ciyfn.callfastfunc(dom, '确认禁止任务执行?', 'status', postparam, function (json) {
table.updateline(json);
});
}
if (btn == 'status2') {
postparam.status = 20;
ciyfn.callfastfunc(dom, '确认恢复任务执行?', 'status', postparam, function (json) {
table.updateline(json);
});
}
if (btn == 'autotskrun') {
ciyfn.sendsignal(window.top, 'manage_ifropen', {
url: 'rigger/autotskrun.html?_autotaskid=' + id
, name: '任务<code>' + table.data[id].name + '</code>'
});
}
if (btn == 'runtask') {
window.open('/z/?func=admin/autotask/task.main&runid=' + id + '&_ciyauth=' + ciyfn.getstorage('_' + ciy_vars.tokenfield));
}
}
</script>
</body>
</html>