使用restify增加请求超时

问题描述 投票:0回答:1

我使用 Node 和 Restify 创建了一个 Microsoft Teams 通知机器人。该机器人已作为 Web 应用程序部署在 Azure 上。 发送通知的请求有时可能需要 1 到 4 分钟,当超过 3 分钟时,我会收到超时响应(即使 1 分钟后我仍然收到通知)。 我们正在努力优化,使其速度更快,但同时我需要一个修补程序并增加请求超时。我怎样才能用restify做到这一点?或者如何在 Azure 中作为 Web 应用程序执行此操作?

这是我迄今为止尝试过的:

const server = restify.createServer();

// Set request and connection timeouts
server.server.setTimeout(10 * 60 * 1000); // 10 minutes
server.server.timeout = 10 * 60 * 1000; // 10 minutes
server.server.keepAliveTimeout = 10 * 60 * 1000; // 10 minutes

但这没有用。在 Azure 中,我只是设置保持连接处于活动状态,因为我找不到任何方法来做到这一点(并且根本没有任何改变)。

node.js typescript azure azure-web-app-service restify
1个回答
0
投票

请参阅文档使用 NodeJs 在您的应用程序中配置超时。

将超时设置为 5 分钟的代码片段:

const server = restify.createServer();
server.timeout = 300000;
server.use(restify.plugins.bodyParser());
server.listen(process.env.port || process.env.PORT || 3978, () => {
  console.log(`\nApp Started, ${server.name} listening to ${server.url}`);
});

还要在

App Service=>Environment Variables
中添加应用程序设置:

enter image description here

我使用 Visual Studio 代码使用 NodeJs 和 Restify 创建了 Microsoft Teams 通知机器人。

  • 在本地调试聊天机器人。
[nodemon] starting `node --inspect=9239 ./src/index.js`
Debugger listening on ws://127.0.0.1:9239/51492a1f-1148-459d-85f6-4e60e92c14e1
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
(node:8204) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
(Use `node --trace-deprecation ...` to show where the warning was created)

App Started, restify listening to http://[::]:3978

enter image description here

  • 通知机器人应用程序已上传到 Teams 客户端。

enter image description here

  • 使用以下命令调用事件来触发通知:
Invoke-Webrequest -Method POST -URI https://localhost:3978/api/notification

enter image description here

enter image description here

  • 将应用程序部署到 Azure:

enter image description here

导航到

Azure Bot=>Channels=>Microsoft Teams
,单击 在 Teams 中打开,重定向到上传到 Teams 客户端的通知机器人应用程序。

enter image description here

  • 使用以下命令调用事件来触发通知:
Invoke-Webrequest -Method POST -URI https://notification9c6356.azurewebsites.net/api/notification

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.