@Scheduled(initialDelay = 1000, fixedDelay = 60000)
public void redisTest(){
Jedis jedis = jedisPool.getResource();
try{
jedis.set("red_packet_num","5000");
}catch (Exception e)
{
e.printStackTrace();
if (jedis != null) {
jedis.close();
}
}
finally {
if (jedis != null) {
jedis.close();
}
}
Lock lock=new ReentrantLock();
for(int i=0;i<2000;i++){
fixedThreadPool.execute(new Runnable() {
@Override
public void run() {
Jedis jedis = jedisPool.getResource();
try {
lock.lock();
String red_packet_num = jedis.get("red_packet_num");
int a = Integer.parseInt(red_packet_num) - 1;
jedis.set("red_packet_num", String.valueOf(a));
lock.unlock();
System.out.println("資料是:" + a+"目前線程是:"+Thread.currentThread().getName()+"目前時間"+ CommonUtil.getCurrentTimeFormatForHMS());
}
catch (Exception e){
e.printStackTrace();
if (jedis != null) {
jedis.close();
}
}
finally {
if (jedis != null) {
jedis.close();
}
}
}
});
}
}
代碼推薦調試看看,看處其中的處理操作邏輯,如何其中的推薦實踐做實際實踐看看吧,謝謝!