雑記帳

日常の出来事や、読んだ本のあらすじや感想など書いています。

ミリセック

2008-07-02 20:44:05 | コンピュータ
1回の操作で複数の処理をさせると途中の2,3個の
処理結果が抜けてしまうとの苦情がこのところ
寄せられています。
1個目を処理して結果を一時的なファイルに作成し、
次の2個目の処理をしてまた結果を一時的なファイルに
作成してと、順番に処理していきます。
もう10年以上使い続けているのに今になってなんで
トラブルが起きるのだろうと不思議な気持ちで
調査しました。

試してみました。
本当です。抜け落ちます。
原因がわかりました。一時ファイル名を時刻から
生成しています。
A101010.DATのような感じです。10時10分10秒に
ファイルを作成したらこういう名前のファイルを
作成します。
このファイル名が重なってしまい上書きしてしまうのです。

苦情を寄せてきたところは最近パソコンを新品に
更新しています。
更新前のパソコンは5~6年は使っていると思います。
そうなんです。パソコンの性能がぐんとよくなって
処理速度がパワーアップしたのです。
1処理1秒以上かかるだろうと想定して付けたファイル名
ですが処理速度が速すぎて1秒間に2~3個も処理して
しまうようになったのです。

パソコンの処理能力を目の当たりにしました。
パソコンにしてみたら"私たちの処理能力をあなどらないでね"
というところでしょか。
どのようにしたらランダムに名前を付けられるかもっか
検討中です。
時刻はミリセックまで取り出すことが出来ます。
A10356.DATのように10.356秒を利用しようかと考えています。
それでもたくさんのパソコンから同時にファイルを作成
すると同じ名前のものができてしまいそうです。

今回のことで、いままでだって複数のパソコンから同時に
処理をすれば重ることはあったのだと思い至りました。
しょっちゅう起きることではなかったのでへんだなと
思いつつやり直していたのではないのかと思います。