一般情况
一般菜鸟使用直接new一个
new IdWorker(1, 1, 1).nextId()
但是批量插入的时候就会出问题了
new一个然后循环nextId()才对。
多线程导致
网上的解决方案是使用redis保存workId,每次生成workerId时,从redis中获取到当前workerId最大值,并+1作为当前workerId,并存入redis,如果workerId为1023,自增为1024,则重置0,作为当前workerId,并存入redis
一般菜鸟使用直接new一个
new IdWorker(1, 1, 1).nextId()
但是批量插入的时候就会出问题了
new一个然后循环nextId()才对。
网上的解决方案是使用redis保存workId,每次生成workerId时,从redis中获取到当前workerId最大值,并+1作为当前workerId,并存入redis,如果workerId为1023,自增为1024,则重置0,作为当前workerId,并存入redis