Class IdWorker

java.lang.Object
org.seppiko.snowflake.IdWorker

public final class IdWorker extends Object
Seppiko Snowflake algorithm implement. Snowflake +----------------------------------------------------------------------------------------------------------------------+ | UNUSED(1BIT) | TIMESTAMP(41BIT) | DATACENTER-ID(5BIT) | WORKER-ID(5BIT) | SERIAL-NO(12BIT) | +----------------------------------------------------------------------------------------------------------------------+
Author:
Leonard Woo
  • Method Details

    • getInstance

      public static IdWorker getInstance(long offsetTimestamp)
      Singleton with synchronized
      Parameters:
      offsetTimestamp - Initialize offset timestamp
      Returns:
      synchronized object
    • initWorker

      public void initWorker(long datacenterId, long workerId)
      Initialization worker
      Parameters:
      datacenterId - see setDatacenterId
      workerId - see setWorkerId
    • setDatacenterId

      public void setDatacenterId(long datacenterId)
      Set data center id
      Parameters:
      datacenterId - data center number the process running on, value range: [0,31]
    • setWorkerId

      public void setWorkerId(long workerId)
      Set worker id
      Parameters:
      workerId - machine or process number, value range: [0,31]
    • nextId

      public long nextId()
      generate an unique and incrementing ID
      Returns:
      ID
    • getWaitCount

      public long getWaitCount()
      Returns:
      the amount of calling waitNextMillis(long) method
    • getEpochMilli

      public long getEpochMilli()
      Returns:
      get offset timestamp
    • getSequence

      public long getSequence()
      Returns:
      get sequence number
    • formatId

      public String formatId(long id)
      format snowflake id
      Parameters:
      id - ID
      Returns:
      ID information
    • toString

      public String toString()
      Snowflake settings
      Overrides:
      toString in class Object
      Returns:
      settings string