|
|
@ -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) { |
|
|
|