scheduler: suspend/resume jobs when apptask is active

the cron job container was holding on to the volume any container changes.
This commit is contained in:
Girish Ramakrishnan
2020-11-25 22:16:20 -08:00
parent 1d3d8288a9
commit 1b92ce08aa
2 changed files with 22 additions and 6 deletions
+6 -4
View File
@@ -1,7 +1,7 @@
'use strict';
exports = module.exports = {
scheduleTask: scheduleTask
scheduleTask
};
let assert = require('assert'),
@@ -12,6 +12,7 @@ let assert = require('assert'),
safe = require('safetydance'),
path = require('path'),
paths = require('./paths.js'),
scheduler = require('./scheduler.js'),
sftp = require('./sftp.js'),
tasks = require('./tasks.js');
@@ -69,6 +70,8 @@ function scheduleTask(appId, taskId, callback) {
if (!fs.existsSync(path.dirname(logFile))) safe.fs.mkdirSync(path.dirname(logFile)); // ensure directory
scheduler.suspendJobs(appId);
// TODO: set memory limit for app backup task
tasks.startTask(taskId, { logFile, timeout: 20 * 60 * 60 * 1000 /* 20 hours */, nice: 15 }, function (error, result) {
callback(error, result);
@@ -77,9 +80,8 @@ function scheduleTask(appId, taskId, callback) {
locker.unlock(locker.OP_APPTASK); // unlock event will trigger next task
// post app task hooks
sftp.rebuild(function (error) {
if (error) debug('Unable to rebuild sftp:', error);
});
sftp.rebuild(error => { if (error) debug('Unable to rebuild sftp:', error); });
scheduler.resumeJobs(appId);
});
}