GS2-Lock API リファレンス

分散排他制御機能

排他処理を実現するためのサービスです。

GS2-Lock のロックは「ネームスペース」「ユーザーID」「プロパティID」の組み合わせによって識別される「ミューテックス」というリソースに対して取得します。

プロパティID には、排他制御を行いたいリソースを一意に識別する任意の文字列を指定します。例えば「ガチャの抽選処理」「アイテムの所持数更新」「外部連携への通知送信」など、二重実行を避けたい処理ごとに異なるプロパティIDを割り当てる運用が考えられます。

ロックを取得する際にはトランザクションIDを指定します。同じトランザクションIDで同じミューテックスに対して再帰的にロックを取得した場合、参照カウントが加算されるリエントラントロックとして振る舞います。解放時には同数の Unlock を実行することでロックが完全に解放されます。

ロックには TTL (Time To Live) を設定でき、TTL を経過するとロックは自動的に解放されます。

GS2-Lock は GS2 のマイクロサービスとして提供されるため、マルチタイトル間や複数のバックエンドサーバー、複数のリージョン間で共通の排他制御を実現できます。

GS2-Script から呼び出すことで、サーバーサイドスクリプトの内部から他のスクリプト実行や外部処理との排他制御を行うことも可能です。


GS2-Lock SDK for Game Engine API リファレンス

ゲームエンジン向け GS2-Lock SDK の モデルの仕様 と API のリファレンス

GS2-Lock SDK API リファレンス

各種プログラミング言語向け GS2-Lock SDK の モデルの仕様 と API のリファレンス

GS2-Lock Deploy/CDK リファレンス

GS2-Deployのスタックを作成する際に使用するテンプレートのフォーマットと、CDKによる各種言語のテンプレート出力の実装例