[Express.js] timeout の設定変更、動作確認サンプルコード
Express.js の default timeout と timeout の設定を変更する方法とサンプルコードをご紹介します。
背景 Express の default timeout って何 ms ?
改めて「Express の default timeout って何 ms だっけ?」と思い、Node.js 公式ドキュメントを読んで確認しました。
ついでに、サンプルコードを書いて Express の timeout について動作確認もしてみた内容を以下に記載しています。
Express の timeout を変更したサンプルコード
Express default timeout 動作確認
Timeout in milliseconds. Default: 120000 (2 minutes).
実行結果 default timeout
$ npm run start
> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www
1000 ms
2000 ms
3000 ms
.
.
.
118000 ms
119000 ms
GET /timeout/default - - ms - -
120000 ms
server.timeout 動作確認
- Node.js: server.timeout
- Node.js: server.setTimeout([msecs][, callback])
- Change server.timeout from default for testing server.timeout
実行結果 server.timeout
$ npm run start
> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www
server.timeout: (default) 120000 ms
server.timeout: (custom) 5000 ms
1000 ms
2000 ms
3000 ms
4000 ms
GET /timeout/default - - ms - -
5000 ms
6000 ms
7000 ms
.
.
.
request.setTimeout 動作確認
- Node.js: request.setTimeout(timeout[, callback])
- GitHub: Add the endpoint GET /timeout/req_setTimeout to test request.setTimeout(timeout[, callback])
実行結果 request.setTimeout
$ npm run start
> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www
100 ms
200 ms
300 ms
400 ms
500 ms
600 ms
700 ms
800 ms
900 ms
GET /timeout/req_setTimeout - - ms - -
1000 ms
response.setTimeout 動作確認
- Node.js: response.setTimeout(msecs[, callback])
- GitHub: Add the endpoint GET /timeout/res_setTimeout to test response.setTimeout(msecs[, callback])
$ npm run start
> [email protected] start /path/to/expressjs-sandbox
> node ./bin/www
100 ms
200 ms
300 ms
400 ms
500 ms
600 ms
700 ms
800 ms
900 ms
1000 ms
1100 ms
1200 ms
1300 ms
1400 ms
1500 ms
1600 ms
1700 ms
1800 ms
1900 ms
GET /timeout/res_setTimeout - - ms - -
2000 ms
以上、Express の default timeout を確認しつつ、timeout を設定変更の方法を把握したい、現場からお送りしました。
参考情報
- What is the default timeout of a req in express? · Issue #3330 · expressjs/express
- Express timeout middleware
- WindowOrWorkerGlobalScope.setInterval() – Web API | MDN