@cocalc/server
Version:
CoCalc server functionality: functions used by either the hub and the next.js server
31 lines • 1.34 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const settings_1 = require("@cocalc/server/settings");
const control_1 = require("@cocalc/server/projects/control");
const lru_cache_1 = __importDefault(require("lru-cache"));
const logger_1 = __importDefault(require("@cocalc/backend/logger"));
const logger = (0, logger_1.default)("project-connection:handle-version");
const restarted = new lru_cache_1.default({
maxAge: 15 * 1000 * 60, // never try to restart more than once every 15 minutes
});
async function handleVersion(project_id, version) {
if (restarted.has(project_id))
return;
// Restart project if version of project code is too old.
const { version_min_project } = await (0, settings_1.getServerSettings)();
if (!version_min_project || version_min_project <= version)
return;
restarted.set(project_id, true);
const project = (0, control_1.getProject)(project_id);
try {
await project.restart();
}
catch (err) {
logger.debug("WARNING -- error restarting project due to version too old", project_id, err);
}
}
exports.default = handleVersion;
//# sourceMappingURL=handle-version.js.map