Browse Source

(*)删除任务定时任务更新

master
peng.peng 2 years ago
parent
commit
6683b775c5
  1. 8
      api/app/lib/controllers/metadataAcquisition/initJob.js
  2. 42
      api/app/lib/controllers/metadataAcquisition/task.js
  3. 4
      api/app/lib/routes/metadataAcquisition/task.js
  4. 10
      api/app/lib/schedule/acqTask.js
  5. 2
      web/client/src/sections/metadataAcquisition/components/taskModal.js
  6. 2
      web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js

8
api/app/lib/controllers/metadataAcquisition/initJob.js

@ -1,6 +1,6 @@
const moment = require('moment')
// let TEST = false
TEST = true
//根据任务配置生成定时任务
module.exports = async function (app, task) {
@ -9,8 +9,8 @@ module.exports = async function (app, task) {
job = app.fs.scheduleInit(
{
interval: task.cron,
immediate: TEST,
proRun: !TEST,
immediate: true,
proRun: false,
},
async () => {
try {

42
api/app/lib/controllers/metadataAcquisition/task.js

@ -1,6 +1,7 @@
'use strict';
const schedule = require('node-schedule')
const moment = require('moment');
const initJob = require('./initJob');
// 新增采集任务
function addAcquisitionTask(opts) {
return async function (ctx, next) {
@ -75,34 +76,8 @@ function getAcquisitionTask(opts) {
}
}
const TEST = true;
async function createJob(app, task) {
let job = null
try {
job = app.fs.scheduleInit(
{
interval: task.cron,
immediate: TEST,
proRun: !TEST,
},
async () => {
try {
console.log(task.taskName, moment().format('YYYY-MM-DD HH:mm:ss'));
} catch (error) {
app.fs.logger.error(`sechedule: taskJobs, error: ${error}`)
}
});
} catch (error) {
app.fs.logger.error(`sechedule: taskJobs, error: ${error}`);
}
return { job }
}
// 修改采集任务
function editAcquisitionTask(opts, app) {
function editAcquisitionTask(app) {
return async function (ctx, next) {
try {
@ -123,7 +98,7 @@ function editAcquisitionTask(opts, app) {
//编辑采集任务 更新采集定时任务状态
if ((task.enabled && (body.cron || body.enabled))) {
const job = await require(`./initJob.js`)(app, task)
const job = await initJob(app, task)
if (app.fs.schedule['taskJobs'][id]) schedule.cancelJob(app.fs.schedule['taskJobs'][id])
app.fs.schedule['taskJobs'][id] = job
} else if (!task.enabled) {
@ -144,17 +119,24 @@ function editAcquisitionTask(opts, app) {
}
// 删除采集任务
function deleteAcquisitionTask(opts) {
function deleteAcquisitionTask(app) {
return async function (ctx, next) {
try {
const models = ctx.fs.dc.models;
const { id } = ctx.params;
await models.AcquisitionTask.destroy({
const task = await models.AcquisitionTask.destroy({
where: {
id: id
}
})
//删除任务 取消定时任务job
if (task) {
if (app.fs.schedule['taskJobs'][id]) {
schedule.cancelJob(app.fs.schedule['taskJobs'][id])
}
}
ctx.status = 204;
ctx.body = { message: '删除采集任务成功' }
} catch (error) {

4
api/app/lib/routes/metadataAcquisition/task.js

@ -13,10 +13,10 @@ module.exports = function (app, router, opts, AuthCode) {
// 修改采集任务信息
app.fs.api.logAttr['PUT/acq/task/:id'] = { content: '修改采集任务信息', visible: true };
router.put('/acq/task/:id', task.editAcquisitionTask(opts, app))
router.put('/acq/task/:id', task.editAcquisitionTask(app))
// 删除采集任务信息
app.fs.api.logAttr['DEL/acq/task/:id'] = { content: '删除采集任务信息', visible: true };
router.del('acq/task/:id', task.deleteAcquisitionTask(opts))
router.del('acq/task/:id', task.deleteAcquisitionTask(app))
};

10
api/app/lib/schedule/acqTask.js

@ -1,10 +1,4 @@
const moment = require('moment')
const rimraf = require('rimraf');
const fs = require("fs");
const path = require("path")
let TEST = false
// TEST = true
module.exports = async function (app, opts) {
@ -20,8 +14,8 @@ module.exports = async function (app, opts) {
const job = app.fs.scheduleInit(
{
interval: s.cron,
immediate: TEST,
proRun: !TEST,
immediate: true,
proRun: false,
},
async () => {
try {

2
web/client/src/sections/metadataAcquisition/components/taskModal.js

@ -11,7 +11,7 @@ function DataSourceModal(props) {
// const onFinish = () => { }
return <>
<Modal
title={editData ? '编辑数据源' : "新建数据源"}
title={editData ? '编辑采集任务' : "新建采集任务"}
onCancel={() => { onCancel() }}
open={visible}
footer={null}

2
web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js

@ -165,7 +165,7 @@ function AcquisitionTask(props) {
<Popconfirm
key="del"
placement="top"
title="是否确认删除该数据源?"
title="是否确认删除该采集任务?"
onConfirm={() => handleDelete(record.id)}
okText="是"
cancelText="否"

Loading…
Cancel
Save