Fix loop DB in docker with autosave
parent
a51b65dd3f
commit
609a265d20
|
@ -25,6 +25,7 @@ var fs = require('fs');
|
||||||
var cron_parser = require("cron-parser");
|
var cron_parser = require("cron-parser");
|
||||||
var cronstrue = require('cronstrue/i18n');
|
var cronstrue = require('cronstrue/i18n');
|
||||||
var humanCronLocate = process.env.HUMANCRON ?? "en"
|
var humanCronLocate = process.env.HUMANCRON ?? "en"
|
||||||
|
var noNeedUpdateDB = false;
|
||||||
|
|
||||||
|
|
||||||
crontab = function(name, command, schedule, stopped, logging, mailing){
|
crontab = function(name, command, schedule, stopped, logging, mailing){
|
||||||
|
@ -47,20 +48,24 @@ exports.create_new = function(name, command, schedule, logging, mailing){
|
||||||
var tab = crontab(name, command, schedule, false, logging, mailing);
|
var tab = crontab(name, command, schedule, false, logging, mailing);
|
||||||
tab.created = new Date().valueOf();
|
tab.created = new Date().valueOf();
|
||||||
tab.saved = false;
|
tab.saved = false;
|
||||||
|
noNeedUpdateDB = false;
|
||||||
db.insert(tab);
|
db.insert(tab);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.update = function(data){
|
exports.update = function(data){
|
||||||
var tab = crontab(data.name, data.command, data.schedule, null, data.logging, data.mailing);
|
var tab = crontab(data.name, data.command, data.schedule, null, data.logging, data.mailing);
|
||||||
tab.saved = false;
|
tab.saved = false;
|
||||||
|
noNeedUpdateDB = false;
|
||||||
db.update({_id: data._id}, tab);
|
db.update({_id: data._id}, tab);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.status = function(_id, stopped){
|
exports.status = function(_id, stopped){
|
||||||
|
noNeedUpdateDB = false;
|
||||||
db.update({_id: _id},{$set: {stopped: stopped, saved: false}});
|
db.update({_id: _id},{$set: {stopped: stopped, saved: false}});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.remove = function(_id){
|
exports.remove = function(_id){
|
||||||
|
noNeedUpdateDB = false;
|
||||||
db.remove({_id: _id}, {});
|
db.remove({_id: _id}, {});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -204,6 +209,7 @@ exports.set_crontab = function(env_vars, callback) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
noNeedUpdateDB = true;
|
||||||
db.update({},{$set: {saved: true}}, {multi: true});
|
db.update({},{$set: {saved: true}}, {multi: true});
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
@ -294,6 +300,8 @@ exports.import_crontab = function(){
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.autosave_crontab = function(callback) {
|
exports.autosave_crontab = function(callback) {
|
||||||
|
if (!noNeedUpdateDB) {
|
||||||
let env_vars = exports.get_env();
|
let env_vars = exports.get_env();
|
||||||
exports.set_crontab(env_vars, callback);
|
exports.set_crontab(env_vars, callback);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue