import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class Test {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.18.130", 6379);
int balance;// 余額
int debt;// 欠額
int expense = 100;// 實刷額度
jedis.watch("balance");
balance = Integer.parseInt(jedis.get("balance"));
if (balance < expense) {
System.out.println("信用卡余額不足!");
jedis.unwatch();
jedis.close();
return;
}
System.out.println("*****begin*****");
Transaction transaction = jedis.multi();
try {
transaction.decrBy("balance", expense);
transaction.incrBy("debt", expense);
try {
Thread.sleep(10000);// 此時balance的值被修改,但本次事務沒有中斷。
} catch (Exception e) {
e.printStackTrace();
}
transaction.exec();
balance = Integer.parseInt(jedis.get("balance"));
debt = Integer.parseInt(jedis.get("debt"));
System.out.println("balance=" + balance);
System.out.println("debt=" + debt);
System.out.println("*****end*****");
} catch (Exception e) {
e.printStackTrace();
transaction.discard();
}finally {
jedis.unwatch();
jedis.close();
}
}
}
uj5u.com熱心網友回復:
難道應該 中斷嗎?transaction.exec();開始河駁交事務
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/7598.html
標籤:其他
上一篇:與服務端udp通信問題
