カテゴリー内の他の記事

kintone REST APIの同時接続数によって処理を制限する

フォローする

Index

はじめに

kintoneのカスタマイズで何かと活躍するkintone REST API。

でも同時接続数には上限値があり、上限を超える接続が発生した場合、利用に制限がかかることがあります。
特にユーザーの接続が集中する時間帯は、REST APIを利用する処理がたくさん動くことになり不安・・・。

今回は、そんな不安を解消するサンプルをご紹介します!

できること

kintone JavaScript API 「kintone REST API 同時接続数の取得」を利用して、現在のREST API同時接続数と上限値を調べます。

現在の同時接続数が多い場合は処理を中断し、API同時接続数が上限値を上回ることを防ぐことができます。

実現方法

2017年11月のアップデートで、kintone REST APIのレスポンスヘッダーに
同時接続数上限の上限値と現在の同時接続数の情報が付与されるようになりましたが、
レスポンスヘッダーはJavaScriptで利用できないためJavaScriptカスタマイズでは利用ができません。

そこで、2018年1月のアップデートでリリースされる「kintone REST API 同時接続数」を取得するJavaScript APIを利用します。

処理時に現在の接続数がわかれば、条件分岐を入れることによって同時接続数のオーバーを回避することができますね!

サンプルコード

今回は、下記のサンプルをご紹介します。

  • 同時接続数の上限値と、現在の接続数を取得
  • 現在の同時接続数が、上限値に近い(今回の例では上限値-20)場合はスキップする

注意点

kintone.api.getConcurrencyLimit()の戻り値は、Promise形式で取得できます。

下記のように、同期的に取得することはできません。

詳細は、APIドキュメントをご確認ください。

おわりに

今回はシンプルな処理をご紹介しましたが、
例えば実行する kintone REST API の重要度によって、以下のように制御を行うことも可能です。

例:

  • 重要ではないリクエスト: 同時接続数が10を超えたら処理を行わない
  • 重要なリクエスト   : 同時接続数が50を超えたら処理を行わない(50未満では実行)

 ※kintone REST API への同時アクセス数はサブドメインごとに 100 が上限値です。詳細はこちら

たくさんの処理を実行する必要性のある場合は、優先度をつけることで重要な処理が確実に実行されるよう工夫することができますね。
ぜひ有効活用してみてください。

 

このTipsは、2018年1月版 kintoneで確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。