使用Java 中Timer定时器设置订单提交后24小时未付款订单状态为已关闭。
来源:互联网 发布:精准数据营销 编辑:程序博客网 时间:2024/05/01 14:19
一:简单的Timer定时器方法Demo:
public class CommTimer { /** * 设置指定24小时后执行 */ public static void orderClose() { final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { //这里写修改方法,根据订单号修改状态就可以了 System.out.println("60秒后执行此方法"); // 不要忘记写中断定时器 timer.cancel(); } //1秒等于1000毫秒 这里是一天 },24*60*60*1000); }}
二:实现步骤:
①:提交订单方法 结束之前调用定时器里面的修改订单状态方法。
②:意思就是提交订单时 设置24小时未付款会执行此方法,修改状态为已关闭。
③:注意的是:在订单付款的方法结束时也需要调用定时器关闭方法,否则订单状态也会修改为已关闭
我的代码:
package com.ssm.jock.timer;import java.util.Timer;import java.util.TimerTask;import org.apache.log4j.Logger;import com.ssm.jock.service.BuyerOrderListService;import com.ssm.jock.utils.SpringContextUtils;/** * Timer定时器 * @author 谢豪 * @Description TODO * 2017年12月11日 上午9:43:08 * @version V1.0 */public class CommTimer { private static final Logger out = Logger.getLogger(CommTimer.class); /** * 订单关闭(设置指定24小时后,修改订单状态为已关闭) * @param bolId 订单号 */ public static void orderClose(final String bolId) { final Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { OrderService os= SpringContextUtils.getBean(OrderService.class); try { Integer ret = os.updateState(bolId,0); if(ret > 0) { out.info("订单号:"+bolId+"已关闭"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 中断线程 timer.cancel(); } },24*60*60*1000); }}
阅读全文
0 0
- 使用Java 中Timer定时器设置订单提交后24小时未付款订单状态为已关闭。
- 如何实现下订单后一个小时后未付款的订单自动取消
- MAGENTO自动关闭未付款的订单
- Spring+quartz定时删除已过期未付款订单信息
- 关于项目中多次保存订单,并且保存后就快速提交,导致部分数据状态未改变
- java定时器处理超时未支付订单
- ecshop 二次开发 订单模块流程分析和修改,修改确认后未付款可以取消订单
- 订单未支付N小时后取消订单库存回滚
- Quartz学习之实现关闭超时2天未付款的订单
- 销售订单发运后的状态为:已发运; 下一步为:运行接口 。仓库库存没有扣减
- 使用Python实现淘宝订单定时付款
- 订单提交后发送邮件
- Oracle EBS AP Invoice未付款(无法付款),但是状态为已付
- 订单超时未付款及时删除(伪),一种解决方案
- 采购订单付款清单
- 采购订单付款清单
- 订单支付怎么避免重复提交,重复付款
- 未清销售订单强制关闭尝试
- 基于TCP,UDP的网络编程总结
- Android xml布局预览错误java.lang.NoSuchFieldError: action_bar
- localtime时间获取
- LeetCode —— 70. Climbing Stairs
- MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法
- 使用Java 中Timer定时器设置订单提交后24小时未付款订单状态为已关闭。
- JavaScript的面向对象
- 数据结构实验之排序六:希尔排序
- 微信测试号之基本功能
- 51nod 1251 Fox序列的数量 容斥原理+数学
- CentOS 6使用rpm方式安装JDK8
- spring-mybatis-springmvc-mysql 写oa
- 第八周周总结
- ECL-final打铁心得