Store timezone offsets in db

This commit is contained in:
Andris Reinman 2016-04-29 20:31:25 +03:00
parent 6e514e1ccc
commit 02344acdee
3 changed files with 47 additions and 19 deletions

View file

@ -12,6 +12,7 @@ let sender = require('./services/sender');
let importer = require('./services/importer'); let importer = require('./services/importer');
let verpServer = require('./services/verp-server'); let verpServer = require('./services/verp-server');
let testServer = require('./services/test-server'); let testServer = require('./services/test-server');
let tzupdate = require('./services/tzupdate');
let dbcheck = require('./lib/dbcheck'); let dbcheck = require('./lib/dbcheck');
let port = config.www.port; let port = config.www.port;
@ -72,25 +73,27 @@ server.on('listening', () => {
// start additional services // start additional services
testServer(() => { testServer(() => {
verpServer(() => { verpServer(() => {
importer(() => { tzupdate(() => {
sender(() => { importer(() => {
log.info('Service', 'All services started'); sender(() => {
if (config.group) { log.info('Service', 'All services started');
try { if (config.group) {
process.setgid(config.group); try {
log.info('Service', 'Changed group to "%s" (%s)', config.group, process.getgid()); process.setgid(config.group);
} catch (E) { log.info('Service', 'Changed group to "%s" (%s)', config.group, process.getgid());
log.info('Service', 'Failed changed group to "%s"', config.group); } catch (E) {
log.info('Service', 'Failed changed group to "%s"', config.group);
}
} }
} if (config.user) {
if (config.user) { try {
try { process.setuid(config.user);
process.setuid(config.user); log.info('Service', 'Changed user to "%s" (%s)', config.user, process.getuid());
log.info('Service', 'Changed user to "%s" (%s)', config.user, process.getuid()); } catch (E) {
} catch (E) { log.info('Service', 'Failed changed user to "%s"', config.user);
log.info('Service', 'Failed changed user to "%s"', config.user); }
} }
} });
}); });
}); });
}); });

View file

@ -4,8 +4,11 @@
let moment = require('moment-timezone'); let moment = require('moment-timezone');
let db = require('../lib/db'); let db = require('../lib/db');
let lastCheck = false;
let log = require('npmlog');
function updateTimezoneOffsets(callback) { function updateTimezoneOffsets(callback) {
log.verbose('UTC', 'Updating timezone offsets');
db.getConnection((err, connection) => { db.getConnection((err, connection) => {
if (err) { if (err) {
return callback(err); return callback(err);
@ -29,4 +32,26 @@ function updateTimezoneOffsets(callback) {
}); });
} }
updateTimezoneOffsets(console.log); module.exports = callback => {
updateTimezoneOffsets(err => {
if (err) {
return callback(err);
}
let checkLoop = () => {
let curUtcDate = new Date().toISOString().split('T').shift();
if (curUtcDate !== lastCheck) {
updateTimezoneOffsets(err => {
if (err) {
log.error('UTC', err);
}
setTimeout(checkLoop, 60 * 60 * 1000);
});
} else {
setTimeout(checkLoop, 60 * 60 * 1000);
}
lastCheck = curUtcDate;
};
setTimeout(checkLoop, 60 * 60 * 1000);
callback(null, true);
});
};

View file

@ -48,7 +48,7 @@
<script src="/datepicker/js/bootstrap-datepicker.min.js"></script> <script src="/datepicker/js/bootstrap-datepicker.min.js"></script>
<script src="/datatables/datatables.min.js"></script> <script src="/datatables/datatables.min.js"></script>
<script src="/moment/moment.min.js"></script> <script src="/moment/moment.min.js"></script>
<script src="/moment/moment-timezone-with-data.min"></script> <script src="/moment/moment-timezone-with-data.min.js"></script>
<script src="/javascript/tables.js"></script> <script src="/javascript/tables.js"></script>
{{#if useEditor}} {{#if useEditor}}