0

REST Web サービスによるソフトウェア更新サーバーを実装しています。リソースへのGETリクエストにより、クライアントのアップグレード「指示」(ファイル自体ではない)を取得するように設計されています

/clients/{clientId}/upgrades?completed=false

クライアントは、30 分間隔でリソースをポーリングするように設計されています。利用可能なアップグレードがない場合、リソースはステータス コード 404 を返し、利用可能な場合はアップグレード手順を返します。クライアントのアップグレードが完了すると、クライアントはサーバーへの PUT 要求によってサーバーに報告します。

/clients/{clientId}/upgrades/{upgradeId}

若干の状態変化あり。

現在、サーバー側からのアップグレード接続制御、つまり最大同時アップグレード接続制限が必要です。

リソースをアップグレードする「アップグレード」ステータス インジケーターのフィールドを追加し、/clients/{clientId}/upgrades にアクセスしたときにインジケーターを変更し、「upgrade==true でのアップグレードの数」を計算して接続番号を見つけることができます。接続数の制限を超えた場合は、ステータス コード 404 をクライアントに返します。ただし、REST Web サービスのステートレス原則を破っています。

どんなアイデアでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

「アップグレード中」のステータスなど、アップグレードの開始を要求する値を使用して、クライアントがリソースへの PUT を成功させるように要求できます。サーバーは、これらの値のいずれかを取得するたびに、承認したクライアントの現在の合計を確認します。リソースが残っている場合は、クライアントが続行できるようにする成功を返すことができます。

クライアントが完了 PUT 要求を送信すると、リソース カウンターを減らすことができます。

于 2012-07-16T15:08:20.843 に答える