Browse Source

model-server: requestTimeout config option

David Sehnal 5 years ago
parent
commit
9edf41a2f2
3 changed files with 13 additions and 1 deletions
  1. 11 0
      src/servers/model/config.ts
  2. 1 1
      src/servers/model/server.ts
  3. 1 0
      src/servers/model/server/api-web.ts

+ 11 - 0
src/servers/model/config.ts

@@ -43,6 +43,11 @@ const DefaultModelServerConfig = {
      */
     queryTimeoutMs: 5 * 1000,
 
+    /**
+     * The maximum number of ms the server spends on a request
+     */
+    requestTimeoutMs: 60 * 1000,
+
     /** Maximum number of requests before "server busy" */
     maxQueueLength: 30,
 
@@ -134,6 +139,12 @@ function addServerArgs(parser: argparse.ArgumentParser) {
         type: 'int',
         help: `Specify in ms how long to keep entries in cache.`
     });
+    parser.addArgument([ '--requestTimeoutMs' ], {
+        defaultValue: DefaultModelServerConfig.requestTimeoutMs,
+        metavar: 'REQUEST_TIMEOUT',
+        type: 'int',
+        help: `The maximum number of ms the server spends on a request.`
+    });
     parser.addArgument([ '--queryTimeoutMs' ], {
         defaultValue: DefaultModelServerConfig.queryTimeoutMs,
         metavar: 'QUERY_TIMEOUT',

+ 1 - 1
src/servers/model/server.ts

@@ -56,7 +56,7 @@ function startServer() {
     initWebApi(app);
 
     const port = process.env.port || ServerConfig.defaultPort;
-    app.listen(port);
+    app.listen(port).setTimeout(ServerConfig.requestTimeoutMs);
 
     console.log(`Mol* ModelServer ${Version}`);
     console.log(``);

+ 1 - 0
src/servers/model/server/api-web.ts

@@ -156,6 +156,7 @@ export function initWebApi(app: express.Express) {
     });
     app.post(makePath('v1/query-many'), (req, res) => {
         const params = req.body;
+        req.setTimeout
         createMultiJob(params, res);
     });