Switched from setTimeout to crontab for watch-mode.
This commit is contained in:
parent
f989bc9f18
commit
00de0d43f5
|
@ -46,8 +46,7 @@ module.exports = {
|
|||
avoidDuplicates: true,
|
||||
retries: 3,
|
||||
watch: {
|
||||
interval: 30,
|
||||
ignoreErrors: true,
|
||||
schedule: '*/30 * * * *',
|
||||
},
|
||||
archives: {
|
||||
search: false,
|
||||
|
|
|
@ -1523,6 +1523,11 @@
|
|||
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
|
||||
"dev": true
|
||||
},
|
||||
"node-cron": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/node-cron/-/node-cron-1.2.1.tgz",
|
||||
"integrity": "sha1-jJC8XccjpWKJsHhmVatKHEy2A2g="
|
||||
},
|
||||
"node-exiftool": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/node-exiftool/-/node-exiftool-2.3.0.tgz",
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
"fs-extra": "^5.0.0",
|
||||
"js-yaml": "^3.12.0",
|
||||
"mime-types": "^2.1.18",
|
||||
"node-cron": "^1.2.1",
|
||||
"node-exiftool": "^2.3.0",
|
||||
"node-fetch": "^2.1.2",
|
||||
"object.omit": "^3.0.0",
|
||||
|
|
17
src/app.js
17
src/app.js
|
@ -4,6 +4,7 @@ const config = require('config');
|
|||
const Snoowrap = require('snoowrap');
|
||||
const exiftool = require('node-exiftool');
|
||||
const exiftoolBin = require('dist-exiftool');
|
||||
const cron = require('node-cron');
|
||||
const { format } = require('date-fns');
|
||||
|
||||
require('array.prototype.flatten').shim();
|
||||
|
@ -40,12 +41,6 @@ function fetchSavePosts(userPosts, ep) {
|
|||
}
|
||||
|
||||
async function initApp() {
|
||||
function watch() {
|
||||
console.log(`[${format(new Date(), 'YYYY-MM-DD HH:mm:ss')}] Watch-mode enabled, checking for new posts ${config.fetch.watch.interval} minutes from now.`);
|
||||
|
||||
setTimeout(initApp, Math.ceil(config.fetch.watch.interval) * 1000 * 60);
|
||||
}
|
||||
|
||||
const usersProvided = args.users && args.users.length;
|
||||
const postIdsProvided = args.posts && args.posts.length;
|
||||
|
||||
|
@ -62,17 +57,17 @@ async function initApp() {
|
|||
await ep.close();
|
||||
|
||||
if (args.watch) {
|
||||
watch();
|
||||
console.log(`[${format(new Date(), 'YYYY-MM-DD HH:mm:ss')}] Watch-mode enabled, checking again for new posts according to crontab '${config.fetch.watch.schedule}'.`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
if (args.watch && config.fetch.watch.ignoreErrors) {
|
||||
watch();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
initApp();
|
||||
|
||||
if (args.watch) {
|
||||
cron.schedule(config.fetch.watch.schedule, initApp);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue