2

目的

バッチ名として使用する一意の 16 文字のキーを生成します。このキーは、ストレージの種類 (一意のカウンターなど)必要としません。

バックグラウンド

30 秒ごとに実行される Windows サービスがあります。MQ からメッセージを取得し、バッチで処理します。私が行っているサービス呼び出しの 1 つは、現在 16 文字のバッチ名を必要としています。バッチ名が何であるかは気にしません。すべてのバッチで一意である必要があります。

質問

を生成する場合Guid、その文字列の最初または最後の 16 文字を使用して、ニーズに合わせて一意にすることはできますか?

4

2 に答える 2

6

いいえ。

Raymond Chen は、 GUID がグローバルに一意である理由を詳細に説明していますが、GUID の部分文字列はそうではありません。

ただし、これを 1 台のマシンで実行している場合は、ID がグローバルに一意である必要はなく、単にローカルに一意である必要があります。したがって、彼が説明する GUID アルゴリズムから MAC アドレス要件を削除できます。また、30 秒ごとに 1 つだけ生成されることがわかっている場合は、アルゴリズムの衝突部分を削除できます。これにより、qujck が示唆するように、日付と時刻を使用することがほとんどなくなります。

于 2013-03-08T11:59:49.753 に答える
3

いいえ、簡単な答えです。日付/時刻を使用しないのはなぜですか?

たとえば、ここにいくつかの Oracle 生成 GUID があります

D71CDF38BB3B6026E0430A9A9A286026
D71CDF38BB3C6026E0430A9A9A286026
D71CDF38BB3D6026E0430A9A9A286026
D71CDF38BB3E6026E0430A9A9A286026
D71CDF38BB3F6026E0430A9A9A286026
D71CDF38BB406026E0430A9A9A286026
于 2013-03-08T11:59:29.800 に答える