mirror of
https://github.com/mastodon/mastodon.git
synced 2024-08-20 21:08:15 -07:00
Support UNIX domain socket for streaming service without using PORT (#8217)
* Support UNIX domain socket for streaming service without using PORT The use of UNIX domain socket for streaming service was not officially supported, but it was made unofficial to use by setting a path to PORT. From now on, SOCKET will be used just like setting for puma. * Hundle relative path
This commit is contained in:
parent
a2cabf3f4a
commit
a083604d1d
1 changed files with 14 additions and 3 deletions
|
@ -9,6 +9,7 @@ const log = require('npmlog');
|
||||||
const url = require('url');
|
const url = require('url');
|
||||||
const WebSocket = require('uws');
|
const WebSocket = require('uws');
|
||||||
const uuid = require('uuid');
|
const uuid = require('uuid');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
const env = process.env.NODE_ENV || 'development';
|
const env = process.env.NODE_ENV || 'development';
|
||||||
|
|
||||||
|
@ -70,6 +71,9 @@ const redisUrlToClient = (defaultConfig, redisUrl) => {
|
||||||
const numWorkers = +process.env.STREAMING_CLUSTER_NUM || (env === 'development' ? 1 : Math.max(os.cpus().length - 1, 1));
|
const numWorkers = +process.env.STREAMING_CLUSTER_NUM || (env === 'development' ? 1 : Math.max(os.cpus().length - 1, 1));
|
||||||
|
|
||||||
const startMaster = () => {
|
const startMaster = () => {
|
||||||
|
if (!process.env.SOCKET && process.env.PORT && isNaN(+process.env.PORT)) {
|
||||||
|
log.warn('UNIX domain socket is now supported by using SOCKET. Please migrate from PORT hack.');
|
||||||
|
}
|
||||||
log.info(`Starting streaming API server master with ${numWorkers} workers`);
|
log.info(`Starting streaming API server master with ${numWorkers} workers`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -574,9 +578,16 @@ const startWorker = (workerId) => {
|
||||||
});
|
});
|
||||||
}, 30000);
|
}, 30000);
|
||||||
|
|
||||||
server.listen(process.env.PORT || 4000, process.env.BIND || '0.0.0.0', () => {
|
if (process.env.SOCKET || process.env.PORT && isNaN(+process.env.PORT)) {
|
||||||
log.info(`Worker ${workerId} now listening on ${server.address().address}:${server.address().port}`);
|
server.listen(process.env.SOCKET || process.env.PORT, () => {
|
||||||
});
|
fs.chmodSync(server.address(), 0o666);
|
||||||
|
log.info(`Worker ${workerId} now listening on ${server.address()}`);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
server.listen(+process.env.PORT || 4000, process.env.BIND || '0.0.0.0', () => {
|
||||||
|
log.info(`Worker ${workerId} now listening on ${server.address().address}:${server.address().port}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const onExit = () => {
|
const onExit = () => {
|
||||||
log.info(`Worker ${workerId} exiting, bye bye`);
|
log.info(`Worker ${workerId} exiting, bye bye`);
|
||||||
|
|
Loading…
Reference in a new issue