awake-heroku
Version:
A package help your heroku app is always runs
37 lines (36 loc) • 1.35 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const https_1 = __importDefault(require("https"));
const constants_1 = require("../utils/constants");
const data_1 = __importDefault(require("./data"));
class AwakeService {
start() {
this.interval = setInterval(async () => {
const apps = data_1.default.getAll();
if (apps.length <= 0) {
return;
}
for (const app of apps) {
if (app.lastHeartBeat &&
Date.now() - app.lastHeartBeat >= constants_1.DEFAULT_HEARTBEAT) {
console.info(`Wakeup app : [${app.id}]: ${app.url}`);
try {
await https_1.default.get(app.url);
}
catch (e) {
// Should ignore error here
}
app.lastHeartBeat = Date.now();
data_1.default.update(app);
}
}
}, constants_1.DEFAULT_HEARTBEAT);
}
stop() {
clearInterval(this.interval);
}
}
exports.default = new AwakeService();
;