美文网首页
项目中设置定时任务

项目中设置定时任务

作者: 刘小刀tina | 来源:发表于2020-05-12 10:07 被阅读0次

1. 启动类上添加开启定时任务的注解

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableCommonWeb
@EnableScheduling //开启定时任务
public class CampaignServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(CampaignServiceApplication.class, args);
    }

}

2.创建定时任务并调用接口

@Component
@Slf4j
public class SchedulOrderJob {

    @Autowired
    private OrderService orderService;

    @Scheduled(cron = "0 */25 * * * ? ")
    public void run(){

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateTime = dateFormat.format(new Date());
        log.info("当前时间为"+dateTime+"开始检查订单时间超过30分钟的自动更新状态");
        orderService.schedulOrderJob();
    }

}


3. 编写接口代码


  /**
     * 定时任务 批量修改超过30分钟待支付订单的状态
     */
    @Override
    public void schedulOrderJob() {
        List<McOrderModel> orders = mcOrderRepository.quertUnpayedOrderDetail();
        if(!orders.isEmpty()){
            orders.forEach(item ->{
                //数据库查询订单创建时间
                LocalDateTime createTime = item.getCreateTime();
                //当前时间
                LocalDateTime currentTime = LocalDateTime.now();
                Duration duration = Duration.between(createTime, currentTime);
                log.info("订单创建时间为:{},当前时间为:{},时差:{}分",createTime,currentTime,duration.toMinutes());
                if(duration.toMinutes()>=30){
                    //超过30分钟 修改待支付状态为取消并释放库存
                    //log.info("时差满足,需修改订单状态,订单ID为:{}",item.getId());
                    OrderStatusChange orderStatusChange = new OrderStatusChange();
                    orderStatusChange.setId(item.getId());
                    orderStatusChange.setStatus(3);
                    this.statusH5(orderStatusChange);
                    //log.info("ID:{},编号:{}支付状态已修改为取消",item.getId(),item.getOrderNo());
                }
            });
        }
        log.info("订单时间超过30分钟的状态更新完毕");

    }

相关文章

  • 项目中设置定时任务

    1. 启动类上添加开启定时任务的注解 2.创建定时任务并调用接口 3. 编写接口代码

  • linux下每分钟运行一次php文件

    项目中遇到需要设置定时任务的工作,原先在宝塔中设置定时任务跟方便,但是却遇到如下图问题,瞬间懵逼。 决定用linu...

  • 2019-07-31定时任务

    定时任务 定时任务实现方法 系统默认定时任务 用户自定义设置定时任务 定时任务配置文件 定时任务启动 定时任务样例...

  • Spring分布式任务高效流程

    项目中有很多定时任务,而且他们的执行模式非常类似,抽象整理如下 定时任务特点 比较多:项目中的定时任务很多,大概有...

  • day 22 操作系统定时任务

    系统定时任务概念==生活中闹钟 系统定时任务实现方法: 实现定时任务配置: 定时任务如何进行设置 定时任务编写常见...

  • crontab 定时任务

    查看当前用户的定时任务列表 创建(编辑)定时任务列表 定时任务格式 删除定时任务 注意 一定要设置crontab的...

  • Mac设置自启动以及定时任务

    Mac设置开机启动项 由于最近使用到开机自启动以及定时任务的开启,在采坑的同事记录一下Mac自启动的以及定时任务开...

  • 设置定时间任务

    将想要定时执行的脚本放入相应的定时任务目录下:以下是各个不同分时的任务目录:• /etc/cron.hourly•...

  • 学习Linux2

    linux 学习2 定时任务管理 crond 任务调度 crontab 进行 定时任务的设置 概述任务调度:是指系...

  • Spring Task 定时任务

    Spring Task 定时任务 主要内容 定时任务概述 ​ 在项目中开发定时任务应该一种比较常见的需求,在 Ja...

网友评论

      本文标题:项目中设置定时任务

      本文链接:https://www.haomeiwen.com/subject/gupdghtx.html