Class AtomicLongSequenceServiceImpl

java.lang.Object
icu.easyj.core.sequence.impls.AtomicLongSequenceServiceImpl
All Implemented Interfaces:
ISequenceService

@LoadLevel(name="atomic-long", order=999) public class AtomicLongSequenceServiceImpl extends Object implements ISequenceService
基于 AtomicLong 实现的内存序列服务

主要用途: 1)单机单应用运行时才能使用此序列服务。 2)运行单元测试时,用于模拟Mock序列服务。

特点:性能高。

使用说明:应用启动时,需要指定其初始值。

Author:
wangliang181230
  • Constructor Details

    • AtomicLongSequenceServiceImpl

      public AtomicLongSequenceServiceImpl(long initialValue)
    • AtomicLongSequenceServiceImpl

      public AtomicLongSequenceServiceImpl()
  • Method Details

    • currVal

      public long currVal(@NonNull String seqName)
      Description copied from interface: ISequenceService
      获取当前序列值
      Specified by:
      currVal in interface ISequenceService
      Parameters:
      seqName - 序列名
      Returns:
      当前序列值
    • nextVal

      public long nextVal(@NonNull String seqName)
      Description copied from interface: ISequenceService
      获取下一序列值

      注意:实现类中不允许抛出 NotSupportedException,该方法是序列服务必须要支持的功能。

      Specified by:
      nextVal in interface ISequenceService
      Parameters:
      seqName - 序列名
      Returns:
      下一序列值
    • setVal

      public long setVal(@NonNull String seqName, long newVal)
      Description copied from interface: ISequenceService
      设置序列值
      Specified by:
      setVal in interface ISequenceService
      Parameters:
      seqName - 序列名
      newVal - 新的序列值
      Returns:
      previousVal 前序列值:null=没有序列值 | -1=未知
    • getAtomicLong

      public AtomicLong getAtomicLong(String seqName)