定时任务 - 构建定时任务task
生活随笔
收集整理的這篇文章主要介紹了
定时任务 - 构建定时任务task
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@Component
public class OrderJob {@Autowiredprivate OrderService orderService;/*** 使用定時任務關閉超期未支付訂單,會存在的弊端:* 1. 會有時間差,程序不嚴謹* 10:39下單,11:00檢查不足1小時,12:00檢查,超過1小時多余39分鐘* 2. 不支持集群* 單機沒毛病,使用集群后,就會有多個定時任務* 解決方案:只使用一臺計算機節點,單獨用來運行所有的定時任務* 3. 會對數據庫全表搜索,及其影響數據庫性能:select * from order where orderStatus = 10;* 定時任務,僅僅只適用于小型輕量級項目,傳統項目** 后續課程會涉及到消息隊列:MQ-> RabbitMQ, RocketMQ, Kafka, ZeroMQ...* 延時任務(隊列)* 10:12分下單的,未付款(10)狀態,11:12分檢查,如果當前狀態還是10,則直接關閉訂單即可*/// @Scheduled(cron = "0/3 * * * * ?")
// @Scheduled(cron = "0 0 0/1 * * ?")public void autoCloseOrder() {orderService.closeOrder();System.out.println("執行定時任務,當前時間為:"+ DateUtil.getCurrentDateString(DateUtil.DATETIME_PATTERN));}}
/*** A cron-like expression, extending the usual UN*X definition to include triggers* on the second as well as minute, hour, day of month, month and day of week.* <p>E.g. {@code "0 * * * * MON-FRI"} means once per minute on weekdays* (at the top of the minute - the 0th second).* <p>The special value {@link #CRON_DISABLED "-"} indicates a disabled cron trigger,* primarily meant for externally specified values resolved by a ${...} placeholder.* @return an expression that can be parsed to a cron schedule* @see org.springframework.scheduling.support.CronSequenceGenerator*/
String cron() default "";
@EnableScheduling // 開啟定時任務
?
總結
以上是生活随笔為你收集整理的定时任务 - 构建定时任务task的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝支付 - 异步通知与同步通知
- 下一篇: 定时任务 - 定时关闭超期未支付订单