2014年11月04日

3. ID(識別子)の生成にエポックタイムを利用する処理について

ID(識別子)の生成にエポックタイムを利用する場合は、

例)
public synchronized static String generateID() {
    try {
        Thread.sleep(1);
    } catch (InterruptedException e) {}
    return String.valueOf(System.currentTimeMillis());
}

プラットフォームによりシステム日時の精度が異なる(10ミリ秒単位など)こと、また、NTP(Network Time Protocol)の時刻同期によりシステム日時が巻き戻ることで、生成されたIDが衝突することを想定し、重複チェックやリトライ処理などを含めること。
なお、将来的にJavaプロセスを分散化、冗長化することが想定される場合は、DBのシーケンスを利用すること。

この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック