# task-manage-server **Repository Path**: tongyu0506/task-manage-server ## Basic Information - **Project Name**: task-manage-server - **Description**: TEKsystem面试所做demo - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-22 - **Last Updated**: 2024-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 需求说明: 1. 请基于springboot设计一个独立模块,该模块实现多任务并行处理。 2. 请设计一张订单表和用户表。 3. 定时每日0点开始扫描订单表,对于前一天已完成的订单,将订单金额统计到上一天的营业额。 4. 对于超过24小时未支付的订单,做自动取消并通知给用户的功能。(通知功能可以使用伪代码) 5. 以上两个任务,请使用一个定时任务加多线程技术实现。 6. 场景仅考虑以单机模式运行,不用考虑多节点并行执行的场景。 ###实现方案 设计思路 #### step1 因为:场景仅考虑单机模式,不考虑多pod, 所以:定时任务框架,不用考虑分布式定时任务框架, 可以直接使用Quartz或更简单地直接使用spring提供的Schedule来实现任务控制; 该demo为了节省时间直接使用Schedule来实现触发任务 case1 使用Schedule+ Schedule配置表来实现 case2 直接使用使用Schedule+ Cron来直接触发任务 #### step2 两个任务,请使用一个定时任务加多线程技术实现 因为该需求有些笼统,故提供了两种方案 case1: 多线程采用异步线程池的方案 分别去处理两个任务 case2: 直接使用线程池 (根据不同的业务场景 选择不同的线程池)来处理任务