mirror of https://github.com/xwiki-labs/cryptpad
make the number of workers configurable
This commit is contained in:
parent
0465f31a45
commit
ba6faca02e
|
@ -89,6 +89,14 @@ module.exports = {
|
|||
*/
|
||||
//httpSafePort: 3001,
|
||||
|
||||
/* CryptPad will launch a child process for every core available
|
||||
* in order to perform CPU-intensive tasks in parallel.
|
||||
* Some host environments may have a very large number of cores available
|
||||
* or you may want to limit how much computing power CryptPad can take.
|
||||
* If so, set 'maxWorkers' to a positive integer.
|
||||
*/
|
||||
// maxWorkers: 4,
|
||||
|
||||
/* =====================
|
||||
* Admin
|
||||
* ===================== */
|
||||
|
|
|
@ -253,6 +253,8 @@ module.exports.create = function (config, cb) {
|
|||
channelExpirationMs: config.channelExpirationMs,
|
||||
verbose: config.verbose,
|
||||
openFileLimit: config.openFileLimit,
|
||||
|
||||
maxWorkers: config.maxWorkers,
|
||||
}, w(function (err) {
|
||||
if (err) {
|
||||
throw new Error(err);
|
||||
|
|
|
@ -193,7 +193,32 @@ Workers.initialize = function (Env, config, _cb) {
|
|||
};
|
||||
|
||||
nThen(function (w) {
|
||||
OS.cpus().forEach(function () {
|
||||
const max = config.maxWorkers;
|
||||
|
||||
var limit;
|
||||
if (typeof(max) !== 'undefined') {
|
||||
// the admin provided a limit on the number of workers
|
||||
if (typeof(max) === 'number' && !isNaN(max)) {
|
||||
if (max < 1) {
|
||||
Log.info("INSUFFICIENT_MAX_WORKERS", max);
|
||||
limit = 1;
|
||||
}
|
||||
} else {
|
||||
Log.error("INVALID_MAX_WORKERS", '[' + max + ']');
|
||||
}
|
||||
}
|
||||
|
||||
var logged;
|
||||
|
||||
OS.cpus().forEach(function (cpu, index) {
|
||||
if (limit && index >= limit) {
|
||||
if (!logged) {
|
||||
logged = true;
|
||||
Log.info('WORKER_LIMIT', "(Opting not to use available CPUs beyond " + index + ')');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
initWorker(fork(DB_PATH), w(function (err) {
|
||||
if (!err) { return; }
|
||||
w.abort();
|
||||
|
|
Loading…
Reference in New Issue