回答編集履歴
3
追記
answer
CHANGED
|
@@ -25,5 +25,7 @@
|
|
|
25
25
|
まー少なくとも、サーバーから消すんはいいんですが自分でダウンロードしたデータは処理後もログとして残しといた方がトラブルがないと思いますね、
|
|
26
26
|
|
|
27
27
|
このシステムの唯一の問題は②-6でファイルを削除しちゃうこと(Aの作業途中に消しちゃう可能性がある事)だけっすね
|
|
28
|
+
数週間後にやっぱなしで!ってことを許すかどうかって問題もありますが、質問では想定されてませんからないんでしょうねーまあ、あるとしても確定させるタイミングを1週間伸ばしたらいいんですけど、システムとしては不便だけど、確定してないなら仕方ないしファイルは手元にあるからね。
|
|
28
29
|
|
|
30
|
+
|
|
29
31
|
ロックとか触っちゃならんって言ってる人のご見解をぜひ聞きたいですねー
|
2
手順を追記
answer
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
(2)〜何らかの処理〜
|
|
16
16
|
(3)フォルダをダウンロード(b')
|
|
17
17
|
(4)a'とb'の一致チェック
|
|
18
|
-
(5)一致していたらコミット、一致していなかったらb'をa'として(2)に戻る
|
|
18
|
+
(5)一致していたらコミット、一致していなかったらロールバックしb'をa'として(2)に戻る
|
|
19
19
|
(6)フォルダを削除
|
|
20
20
|
|
|
21
21
|
ただ、Aシステムのアップロードが中途半端に時間がかかっていて処理途中かを検知する手段がないので、ダウンロードしてから数時間待つみたいにしたら事故は減るかなって感じです(まあ、この1ms前とかに変更かけてきたらどの段階で変更が終わったのか不明なんですけど)
|
1
語気を訂正、ついでにフローを追加
answer
CHANGED
|
@@ -8,10 +8,20 @@
|
|
|
8
8
|
|
|
9
9
|
まあどちらにせよ、以下の方法で行ける気がします。
|
|
10
10
|
|
|
11
|
-
Bシステムはフォルダをダウンロードして特定の処理を完了する直
|
|
11
|
+
Bシステムはフォルダをダウンロードして特定の処理を完了する直前で、もう一度フォルダをダウンロードしに行き、最初にダウンロードしたものと一致していたらコミット、変更されていたらロールバックし、もう一度ダウンロードしたフォルダを正としてもう一度同じことをすればいいかと思います。
|
|
12
12
|
|
|
13
|
+
手順に起こすなら、
|
|
14
|
+
(1)フォルダをダウンロード(a')
|
|
15
|
+
(2)〜何らかの処理〜
|
|
16
|
+
(3)フォルダをダウンロード(b')
|
|
17
|
+
(4)a'とb'の一致チェック
|
|
18
|
+
(5)一致していたらコミット、一致していなかったらb'をa'として(2)に戻る
|
|
19
|
+
(6)フォルダを削除
|
|
20
|
+
|
|
13
21
|
ただ、Aシステムのアップロードが中途半端に時間がかかっていて処理途中かを検知する手段がないので、ダウンロードしてから数時間待つみたいにしたら事故は減るかなって感じです(まあ、この1ms前とかに変更かけてきたらどの段階で変更が終わったのか不明なんですけど)
|
|
14
22
|
|
|
23
|
+
手順としては(2)の前にはAシステムのアップロード遅延を考慮して、遅延であるならa', b'が必ず異なるようになるためのディレイが必要
|
|
24
|
+
|
|
15
25
|
まー少なくとも、サーバーから消すんはいいんですが自分でダウンロードしたデータは処理後もログとして残しといた方がトラブルがないと思いますね、
|
|
16
26
|
|
|
17
27
|
このシステムの唯一の問題は②-6でファイルを削除しちゃうこと(Aの作業途中に消しちゃう可能性がある事)だけっすね
|