在日常的工作中,遇到如下的业务场景,类似于微信或者支付宝支付后定时通知调用方,每隔15/15/30/60...秒都要执行一次通知,于是自己实现了如下的代码。
通知线程是一个定时的线程,并且与主业务线程分离。
public class AppCallBackTask implements Runnable {
//业务属性
private ScheduledExecutorService executorService;
static final Log log = LogFactory.getLog(AppCallBackTask.class);
final AtomicInteger count = new AtomicInteger(0);
public AppCallBackTask() {
}
//业务构造方法
@Override
public void run() {
AppCallBackResponse res = new AppCallBackResponse();
CloseableHttpResponse response = null;
count.getAndIncrement();
log.info("AppCallBackTask...begin" + count.get());
try {
if (ApiConstants.SUCCESS_CODE.equals(result)) {
//业务
if (result.equals("success")) {
//业务
executorService.shutdown();
}
} else {
//业务
}
} catch (Exception e) {