From 6683b775c59527bcbd9402b1a23a85f35096bfa9 Mon Sep 17 00:00:00 2001 From: "peng.peng" Date: Thu, 23 Mar 2023 10:19:50 +0800 Subject: [PATCH] =?UTF-8?q?=EF=BC=88*=EF=BC=89=E5=88=A0=E9=99=A4=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../metadataAcquisition/initJob.js | 8 ++-- .../controllers/metadataAcquisition/task.js | 42 ++++++------------- .../lib/routes/metadataAcquisition/task.js | 4 +- api/app/lib/schedule/acqTask.js | 10 +---- .../components/taskModal.js | 2 +- .../containers/acquisitionTask.js | 2 +- 6 files changed, 22 insertions(+), 46 deletions(-) diff --git a/api/app/lib/controllers/metadataAcquisition/initJob.js b/api/app/lib/controllers/metadataAcquisition/initJob.js index b52f764..37660e4 100644 --- a/api/app/lib/controllers/metadataAcquisition/initJob.js +++ b/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 { diff --git a/api/app/lib/controllers/metadataAcquisition/task.js b/api/app/lib/controllers/metadataAcquisition/task.js index 739d450..2c3dfbe 100644 --- a/api/app/lib/controllers/metadataAcquisition/task.js +++ b/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) { diff --git a/api/app/lib/routes/metadataAcquisition/task.js b/api/app/lib/routes/metadataAcquisition/task.js index b1217ed..f16a3e4 100644 --- a/api/app/lib/routes/metadataAcquisition/task.js +++ b/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)) }; diff --git a/api/app/lib/schedule/acqTask.js b/api/app/lib/schedule/acqTask.js index 9248e2e..131f0db 100644 --- a/api/app/lib/schedule/acqTask.js +++ b/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 { diff --git a/web/client/src/sections/metadataAcquisition/components/taskModal.js b/web/client/src/sections/metadataAcquisition/components/taskModal.js index 754f159..0278fa8 100644 --- a/web/client/src/sections/metadataAcquisition/components/taskModal.js +++ b/web/client/src/sections/metadataAcquisition/components/taskModal.js @@ -11,7 +11,7 @@ function DataSourceModal(props) { // const onFinish = () => { } return <> { onCancel() }} open={visible} footer={null} diff --git a/web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js b/web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js index b5550b3..c78ed6d 100644 --- a/web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js +++ b/web/client/src/sections/metadataAcquisition/containers/acquisitionTask.js @@ -165,7 +165,7 @@ function AcquisitionTask(props) { handleDelete(record.id)} okText="是" cancelText="否"