「ファイル名に”yyyymmdd_hhmmss”がついてますが同タイミングで動かしたらどうなりますか」とレビューされて震えた話

この世に絶対はない
170
ふぁい @neconocc

排他制御という概念を知らない人が作ったんだろうな twitter.com/Mr_mura_ura/st…

2023-05-11 22:18:58
ゆーしゃん.py(bot運用中) @Mr_mura_ura

客「ファイル名に「yyyymmdd_hhmmss」がついてますが、完全に同タイミングで動かしたらどうなります?」 私「こんな小規模な社内システムでそんな事無いと思いますが…エラー落ちしますね…」 客「まぁ99%無いと思いますが、念のためにね」 というレビューをつい最近受けた私、震えてます←

2023-05-11 00:02:16
ますみず @masumizuinfo

@Mr_mura_ura 日付のファイル名に意味があるなら(古いファイルの削除のためなど) yyyymmdd_hhmmss_000 形式で最後はINDEXを付けて採番する 採番が面倒ならミリ秒を付けた上でスレッドIDを付ける もしくは、ユーザ毎にフォルダを作って別々に管理する

2023-05-11 21:05:33
yu_ku@M💉💉💉💉P💉済 @yu_ku_yu_ku

モノ次第なんですよね。 「原理的に1秒以内に同じ処理を要求されることはない」と言えるならそれでも問題はないと思うし。 twitter.com/Mr_mura_ura/st…

2023-05-11 12:08:57
Mill=O=Wisp @millowisp

小規模のテストで洗い出しにくいけど、規模が大きくなればなるほど発生確率は100%に漸近していくというタイプのアレ。 twitter.com/Mr_mura_ura/st…

2023-05-11 11:01:28
某人間 @bowfigure

・uuid(guid)つける。 ・存在チェックしてあったら一秒待機して再実行。 ・バグっら「さーせん」で逃げる の三択 twitter.com/Mr_mura_ura/st…

2023-05-11 22:01:42
あんこー @ancoutan

rdbのオートナンバーか、uuidを付けるんや。。 twitter.com/Mr_mura_ura/st…

2023-05-11 19:10:00
ふじ田 @Lens_Fuji

@Mr_mura_ura 端末に数桁程度のIDを割り当てて、yyyymmdd_hhmmss値にIDを付与すれば重複は避けられるのでは?(ミリ秒、マイクロ秒、ナノ秒と増やすより扱いやすい

2023-05-11 14:07:11
ほんのむし | ⚖👑🍹 @bibliophile373

やっぱ連番は採用するべきだなぁ あと利用者は知ってか知らずか最悪なケースを必ずやるって思いながらコーディングするしかない… twitter.com/Mr_mura_ura/st…

2023-05-11 19:15:51
eroken @eroken

@Mr_mura_ura ファイル名に付加するのが秒までという前提で、パッと思いつくのは以下のような改修かな。 ・ファイル名の生成前に1秒の待ち時間を追加。 ・保存前に同名ファイルの存在チェックを追加 ・同名ファイルが存在したら1秒後にファイル名を再生成 →

2023-05-11 18:31:15
eroken @eroken

@Mr_mura_ura → システムの利用者数≒社員数にもよりますが、小規模な社内システムで、オビに短しタスキに長しにならないように、どの程度まで改修するか、難しいところですよね。 →

2023-05-11 18:41:05
eroken @eroken

@Mr_mura_ura → システムの作りを現状のままにするにしても、最低限でも、以下の条件をクリアしてる必要はありそうですね。 ・エラー落ちについて、お客さんの了承が得られている。 ・エラーが発生した場合の対処方法について、現場の人が理解できるレベルのドキュメント等で周知されている。

2023-05-11 18:43:48
ゆーしゃん.py(bot運用中) @Mr_mura_ura

@eroken >・エラー落ちについて、お客さんの了承が得られている。 エラー落ちした際はその旨が通知されるので、それで納得して頂けました。 (1%以下の確立なので、エラー検知できるならば、わざわざ対策せずともOKという結論) ただ、今後同様のプログラムを作る際は対策しようと思います💦

2023-05-11 20:31:30