とあるシステムにて、システム管理者がアカウントの管理などを行うための
機能を開発しています。
本システムはAPサーバとDBサーバに分かれてRESTでやり取りしており、
本仕組みにてトランザクションを使って複数のRESTをまとめて更新する方法を
検討しています。
下記HPを参考に、DBサーバ側に一時的にリクエストで受け付けた
更新内容をスタックする仕組みを作り、APサーバ側からコミット開始リクエストを
受けたタイミングでDBに向けてため込んだ一連の処理を実行すると言う仕組みを
考えているのですが、そこで2点質問です。
https://qiita.com/uenosy/items/89de9b1d0d2842e358e9
1)
それぞれのRESTリクエストで投げ込まれる各更新指示を一時的に
DBサーバ側のどこにため込むかで悩んでいます。
普通にインスタンスを生成してそこに登録してもRESTの各処理同士で参照することは
出来ないような気がしますし、かと言ってDBやファイルに登録するのも排他制御や、
作ったデータの後片付けがあるため、出来れば避けたいと思っています。
1つ思いついたのがシングルトンクラスにキューを持たせて、
それをRESTの各処理で参照し合うと言う方法なのですが、
正直シングルトンをあまり使ったことが無く、
本用途が正しいのかがイマイチ分かりません。
このような実装のケースとしてシングルトンを使うのが適当なのかどうか、
また、他に実装可能な方法がございましたらご教示ください。
2)
そもそもこの実装ですがRESTful設計における
ステートレス性に違反するものなのでしょうか。
また、その場合に起こりうる具体的なリスクを教えてください。
よろしくお願いいたします。
あなたの回答
tips
プレビュー