package com.zteits.pay.domain; import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit; public class CustAcctMsgDelayTask implements Delayed{ private String custId; private long timeOut; /** * 到期时间,单位是秒 */ public CustAcctMsgDelayTask(String custId,long timeoutSeconds) { this.timeOut = System.currentTimeMillis() + TimeUnit.MILLISECONDS.convert(timeoutSeconds, TimeUnit.SECONDS); this.custId = custId; } @Override public int compareTo(Delayed d) { return (int) (this.getDelay(TimeUnit.MILLISECONDS) - d.getDelay(TimeUnit.MILLISECONDS)); } @Override public long getDelay(TimeUnit unit) { return unit.convert(this.timeOut - System.currentTimeMillis(), TimeUnit.MILLISECONDS); } public String getCustId() { return custId; } public void setCustId(String custId) { this.custId = custId; } public long getTimeOut() { return timeOut; } public void setTimeOut(long timeOut) { this.timeOut = timeOut; } }