84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
比如要做一个5点下线的团购,但是如果不用定时器做的话,5点后没人访问,就一直是开启状态,直到第一个人去触发下架动作,这期间要写数不清的烂代码,恳请前辈点拨
业精于勤,荒于嬉;行成于思,毁于随。
石英
quartz到點定時觸發, 或者採用Lazy模式,等一個前端用戶觸發了這個團購,業務邏輯中檢查是否已經過期了,不好的地方在於業務耦合度高了
兩個方法: 1. 用crontab指定5點開始執行下架任務。 2. 跑一個服務不斷輪詢時間,查詢時間要下架的商品,並執行下架任務。
必需quartz
描述的業務邏輯沒有看明白,quartz是標配 如果在spring3.x的環境下,最簡單的方式: 定時任務的類別添加@Component註解,執行任務的方法加入@Scheduled(cron = "0/5 * * * ?")註解。 讓Spring掃描到該類別:spring設定檔中加<task:annotation-driven />這個配置, 其中@Scheduled註解是(org.springframework.scheduling.annotation.Scheduled)
<task:annotation-driven />
用quartz是最可靠的。 但就像樓主自己說的
5點後沒人訪問,就一直是開啟狀態,直到第一個人去觸發下架動作
其實這樣子做也是蠻可靠的。就是每次刷這個團購頁面都需要去判斷這個團購是否已經過期。 因為你不能完全依靠定時任務,定時任務只是在確定的時候去做一件事,但是做件事還是需要時間的。所以你最後還需要需要在團購頁面渲染的時候做校驗的
做個job server
Java中用quartz框架比較好,如果只是簡單的任務,直接使用jdk自帶的定時任務也可以
org.springframework.scheduling.timer.ScheduledTimerTask
用spring配置一個任務計劃,配置要執行的class就可以了,這樣子自己只任務計劃的管邏輯內容即可。 或是需要更進階功能,可以使用Job/schedule相關的框架
但是這個功能似乎windows上是利用windows的任務計劃呼叫bat的方式比較多,bat下可以透過java指令來執行一個jar。 linux下同樣系統也提供了任務計劃,呼叫shell即可
比較複雜的任務,例如定時定點,用Quartz,專案中用到Spring的話,Spring與Quartz可完美結合。 一般簡單的任務,每隔多久執行的,可以直接使用jdk自備的。
石英
quartz到點定時觸發,
或者採用Lazy模式,等一個前端用戶觸發了這個團購,業務邏輯中檢查是否已經過期了,不好的地方在於業務耦合度高了
兩個方法:
1. 用crontab指定5點開始執行下架任務。
2. 跑一個服務不斷輪詢時間,查詢時間要下架的商品,並執行下架任務。
必需quartz
描述的業務邏輯沒有看明白,quartz是標配
如果在spring3.x的環境下,最簡單的方式:
定時任務的類別添加@Component註解,執行任務的方法加入@Scheduled(cron = "0/5 * * * ?")註解。
讓Spring掃描到該類別:spring設定檔中加
<task:annotation-driven />
這個配置,其中@Scheduled註解是(org.springframework.scheduling.annotation.Scheduled)
用quartz是最可靠的。
但就像樓主自己說的
其實這樣子做也是蠻可靠的。就是每次刷這個團購頁面都需要去判斷這個團購是否已經過期。
因為你不能完全依靠定時任務,定時任務只是在確定的時候去做一件事,但是做件事還是需要時間的。所以你最後還需要需要在團購頁面渲染的時候做校驗的
做個job server
Java中用quartz框架比較好,如果只是簡單的任務,直接使用jdk自帶的定時任務也可以
org.springframework.scheduling.timer.ScheduledTimerTask
用spring配置一個任務計劃,配置要執行的class就可以了,這樣子自己只任務計劃的管邏輯內容即可。
或是需要更進階功能,可以使用Job/schedule相關的框架
但是這個功能似乎windows上是利用windows的任務計劃呼叫bat的方式比較多,bat下可以透過java指令來執行一個jar。 linux下同樣系統也提供了任務計劃,呼叫shell即可
比較複雜的任務,例如定時定點,用Quartz,專案中用到Spring的話,Spring與Quartz可完美結合。
一般簡單的任務,每隔多久執行的,可以直接使用jdk自備的。