Scheduler: refresh DNS provider domain lists on interval (#69)

The host scheduler already checked wildcard cert expiry; add the second half of
the scheduler controller — DnsProvider.refreshAllDomains() re-syncs every
provider's domain list (get -> updateDomains, per-provider errors isolated),
scheduled 30s after start and every 24h alongside the cert check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 11:31:03 -04:00
parent c19cd2243e
commit 6465e3d9f5
2 changed files with 29 additions and 0 deletions
+7
View File
@@ -2,6 +2,7 @@
const conf = require('@simpleworkjs/conf');
const {Host} = require('../models/host');
const {DnsProvider} = require('../models').models;
function hostSchedulerService(){
@@ -29,8 +30,14 @@ function hostSchedulerService(){
// Ensures certificates are renewed well before expiration
setInterval(Host.checkWildcardForRenew.bind(Host), conf.service.hostScheduler.interval);
// Refresh each DNS provider's domain list on the same cadence so domains
// added/removed at the provider are picked up without a manual refresh.
setTimeout(DnsProvider.refreshAllDomains.bind(DnsProvider), conf.service.hostScheduler.initial);
setInterval(DnsProvider.refreshAllDomains.bind(DnsProvider), conf.service.hostScheduler.interval);
console.log('Host scheduler service initialized');
console.log('- Wildcard cert check: 30s after start, then every 24h');
console.log('- DNS provider domain refresh: 30s after start, then every 24h');
}
if(conf.service.hostScheduler.enabled !== false) hostSchedulerService();