最近写了一个定时任务延时算法,有需要的可以直接用,思路就是微信支付宝重处理的思路。
private boolean isDeal(TransferNumberRefund refund) {
int rehandNumber = refund.getRefundNum();
int differ = (int) ((new Date().getTime() - refund.getCreateTime().getTime()) / 1000); // 时差(秒)
if (rehandNumber == 0) {
return true;
} else if (rehandNumber == 1 && differ >= 5) {
return true;
} else if (rehandNumber == 2 && differ >= 10) {
return true;
} else if (rehandNumber == 3 && differ >= 25) {
return true;
} else if (rehandNumber == 4 && differ >= 40) {
return true;
} else if (rehandNumber == 5 && differ >= 70) {
return true;
} else if (rehandNumber == 6 && differ >= 250) {
return true;
} else if (rehandNumber > 6 && rehandNumber <= 10) {
int times = 1800 + (rehandNumber - 6) * 1800;
if (differ >= times) {
return true;
}
} else if (rehandNumber > 10 && rehandNumber <= 16) {
int times = 7200 + (rehandNumber - 10) * 3600;
if (differ >= times) {
return true;
}
} else if (rehandNumber > 16 && rehandNumber <= 26) {
int times = 28800 + ((rehandNumber - 16) * 3600 * 4);
if (differ >= times) {
return true;
}
}
return false;
}
重处理对应时间: