はじめに
kintoneのカスタマイズで何かと活躍するkintone REST API。
でも
同時接続数には上限値
があり、上限を超える接続が発生した場合、利用に制限がかかることもあります。
特にユーザーの接続が集中する時間帯は、REST APIを利用する処理がたくさん動くことになり不安。
今回は、そんな不安を解消するサンプルを紹介します!
できること
kintone JavaScript APIの kintone REST API同時接続数を取得する を利用して、現在のREST API同時接続数と上限値を調べます。
現在の同時接続数が多い場合は処理を中断し、API同時接続数が上限値を上回ることを防ぐことができます。
実現方法
2017年11月のアップデートで、kintone REST APIのレスポンスヘッダーに同時接続数の上限値と現在の同時接続数の情報が付与されるようになりました。 しかし、 kintone REST APIリクエストを送信するAPI を使ってリクエストしたときは、レスポンスヘッダーを利用できません。
そこで、2018年1月のアップデートでリリースされる kintone REST API同時接続数を取得するAPI を利用します。
処理時に現在の接続数がわかれば、条件分岐を入れることによって同時接続数のオーバーを回避できますね!
サンプルコード
今回は、次のサンプルを紹介します。
- 同時接続数の上限値と、現在の接続数を取得
- 現在の同時接続数が、上限値に近い(今回の例では
上限値 - 20
)場合はスキップする。
|
|
注意点
kintone.api.getConcurrencyLimit()
の戻り値は、Promise形式で取得できます。
次のように、同期的には取得できません。
|
|
詳細は、 kintone REST API同時接続数を取得するAPI を確認してください。
おわりに
今回はシンプルな処理を紹介しましたが、たとえば、実行するkintone REST APIの重要度によって、以下のように制御できます。
- 重要ではないリクエスト: 同時接続数が10を超えたら処理しない。
- 重要なリクエスト: 同時接続数が50未満の場合は実行し、50を超えたら処理しない。
kintone REST APIへの同時アクセス数の上限値は、サブドメインごとに100までです。
詳細は
kintoneヘルプ:同時アクセス数
を確認してください。
たくさんの処理を実行する必要性のある場合は、優先度をつけることで重要な処理が確実に実行されるよう工夫できますね。
ぜひ有効活用してみてください。
このTipsは、2018年1月版kintoneで動作を確認しています。