64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
const JembaConnManager = require('../../db/JembaConnManager');//singleton
|
||
|
||
const ayncExit = new (require('../AsyncExit'))();
|
||
const utils = require('../utils');
|
||
const log = new (require('../AppLogger'))().log;//singleton
|
||
|
||
const minuteMs = 60*1000;
|
||
const hourMs = 60*minuteMs;
|
||
|
||
let instance = null;
|
||
|
||
//singleton
|
||
class BUCClient {
|
||
constructor(config) {
|
||
if (!instance) {
|
||
this.config = config;
|
||
|
||
this.connManager = new JembaConnManager();
|
||
this.db = this.connManager.db['book-update-server'];
|
||
|
||
//константы
|
||
if (this.config.branch !== 'development') {
|
||
this.syncPeriod = 1*hourMs;//период синхронизации с сервером BUC
|
||
} else {
|
||
this.syncPeriod = 1*minuteMs;//период синхронизации с сервером BUC
|
||
}
|
||
|
||
this.fromCheckTime = 1;
|
||
|
||
this.main();//no await
|
||
|
||
instance = this;
|
||
}
|
||
|
||
return instance;
|
||
}
|
||
|
||
async checkBuc(bookUrls) {
|
||
return [];
|
||
}
|
||
|
||
async findMaxCheckTime() {
|
||
let result = 1;
|
||
|
||
return result;
|
||
}
|
||
|
||
async main() {
|
||
if (!this.config.bucEnabled)
|
||
throw new Error('BookUpdateChecker disabled');
|
||
|
||
try {
|
||
this.fromCheckTime = await this.findMaxCheckTime();
|
||
//this.periodicSync();//no await
|
||
|
||
log(`BUC Client started`);
|
||
} catch (e) {
|
||
log(LM_FATAL, e.stack);
|
||
ayncExit.exit(1);
|
||
}
|
||
}
|
||
}
|
||
|
||
module.exports = BUCClient; |