-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtracker.js
40 lines (35 loc) · 1023 Bytes
/
tracker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var logger = require('./helpers/logging').getLogger('tracker');
var product = require('./controllers/product');
var nextTime = function () {
var now = new Date();
var next = new Date(now);
// next.setMinutes(now.getMinutes() + 1);
// next.setDate(now.getDate() + 1);
next.setHours(now.getHours() + 1);
next.setMinutes(0);
next.setSeconds(0);
next.setMilliseconds(0);
return {
now: now,
next: next,
delay: (next - now)
};
};
var timer = function (params) {
var delay = params.delay || 1;
setTimeout(processer, delay, timer, params);
};
var processer = function (callback, params) {
if (params.delay) {
product.recordAllProductPrice(function (error, results) {
var time = nextTime();
logger.info('Now: %s | Next: %s', time.now.toString(), time.next.toString());
callback({ delay: time.delay });
});
} else {
var time = nextTime();
logger.info('Now: %s | Next: %s', time.now.toString(), time.next.toString());
callback({ delay: time.delay });
}
};
timer({ delay: null });