summaryrefslogtreecommitdiff
path: root/ext/http
diff options
context:
space:
mode:
Diffstat (limited to 'ext/http')
-rw-r--r--ext/http/00_serve.ts26
1 files changed, 18 insertions, 8 deletions
diff --git a/ext/http/00_serve.ts b/ext/http/00_serve.ts
index 8ed1a1d04..9c6f80552 100644
--- a/ext/http/00_serve.ts
+++ b/ext/http/00_serve.ts
@@ -579,6 +579,8 @@ type RawServeOptions = {
handler?: RawHandler;
};
+const kLoadBalanced = Symbol("kLoadBalanced");
+
function serve(arg1, arg2) {
let options: RawServeOptions | undefined;
let handler: RawHandler | undefined;
@@ -634,6 +636,7 @@ function serve(arg1, arg2) {
hostname: options.hostname ?? "0.0.0.0",
port: options.port ?? 8000,
reusePort: options.reusePort ?? false,
+ loadBalanced: options[kLoadBalanced] ?? false,
};
if (options.certFile || options.keyFile) {
@@ -842,18 +845,25 @@ function registerDeclarativeServer(exports) {
"Invalid type for fetch: must be a function with a single or no parameter",
);
}
- return ({ servePort, serveHost }) => {
+ return ({ servePort, serveHost, serveIsMain, serveWorkerCount }) => {
Deno.serve({
port: servePort,
hostname: serveHost,
+ [kLoadBalanced]: (serveIsMain && serveWorkerCount > 1) ||
+ (serveWorkerCount !== null),
onListen: ({ port, hostname }) => {
- console.debug(
- `%cdeno serve%c: Listening on %chttp://${hostname}:${port}/%c`,
- "color: green",
- "color: inherit",
- "color: yellow",
- "color: inherit",
- );
+ if (serveIsMain) {
+ const nThreads = serveWorkerCount > 1
+ ? ` with ${serveWorkerCount} threads`
+ : "";
+ console.debug(
+ `%cdeno serve%c: Listening on %chttp://${hostname}:${port}/%c${nThreads}`,
+ "color: green",
+ "color: inherit",
+ "color: yellow",
+ "color: inherit",
+ );
+ }
},
handler: (req) => {
return exports.fetch(req);