直播系統開發,每日任務定時重新整理
直播系統開發,每日任務定時重新整理實現的相關程式碼
1. Timer
Timer是 JDK 自帶的定時任務執行類,可以直接使用 Timer來實現定時任務。這種實現方式比較簡單,可以指定首次執行的延遲時間、首次執行的具體日期時間,以及執行頻率,能滿足日常需要。Timer是執行緒安全的,因為背後是單執行緒在執行所有任務。Timer是基於絕對時間排程的,而不是基於相對時間,所以它對系統時間的改變非常敏感。
1.1 使用:
import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * 測試定時任務 */ public class Test { public static void main(String[] args) { // 定義一個任務 TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println("Run timerTask:" + new Date()); } }; // 計時器 Timer timer = new Timer(); // 新增執行任務(延遲 1s 執行,每 2s 執行一次) timer.schedule(timerTask, 1000, 2000); } }
幾個重要的方法:
schedule():開始排程任務,提供了幾個包裝方法;
cancle():終止任務排程,取消當前排程的所有任務,正在執行的任務不受影響;
purge():從任務佇列中移除所有已取消的任務;
另外,java.util.TimerTask就是實現了 Runnable介面,具體任務邏輯則是在 run()方法裡去實現。
public abstract class TimerTask implements Runnable { // ...... }
執行結果如下:
Run timerTask:Wed Mar 17 10:42:05 CST 2021 Run timerTask:Wed Mar 17 10:42:07 CST 2021 Run timerTask:Wed Mar 17 10:42:09 CST 2021 Run timerTask:Wed Mar 17 10:42:11 CST 2021 Run timerTask:Wed Mar 17 10:42:13 CST 2021 Run timerTask:Wed Mar 17 10:42:15 CST 2021 Run timerTask:Wed Mar 17 10:42:17 CST 2021 Run timerTask:Wed Mar 17 10:42:19 CST 2021 Run timerTask:Wed Mar 17 10:42:21 CST 2021 ......
1.2 Timer 缺點分析:
問題 1:任務執行時間長影響其他任務。
開啟兩個執行緒,如下:
import java.util.Date; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; /** * 測試定時任務 */ public class Test { public static void main(String[] args) { // 定義任務 1 TimerTask timerTask1 = new TimerTask() { @Override public void run() { try { TimeUnit.SECONDS.sleep(3);// 休眠 3 秒 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Run timerTask 1:" + new Date()); } }; // 定義任務 2 TimerTask timerTask2 = new TimerTask() { @Override public void run() { System.out.println("Run timerTask 2:" + new Date()); } }; // 計時器 Timer timer = new Timer(); // 新增執行任務(延遲 1s 執行,每 3s 執行一次) timer.schedule(timerTask1, 1000, 3000); timer.schedule(timerTask2, 1000, 3000); } }
以上就是直播系統開發,每日任務定時重新整理實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2843086/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手機直播原始碼,每日定時重新整理使用者任務原始碼
- 定時任務管理系統
- 直播系統原始碼,實現倒數計時,定時任務原始碼
- Linux系統中延時任務及定時任務Linux
- linux系統怎麼新增每天定時任務? linux系統新增定時任務的教程Linux
- 基於 Golang 開發的分散式定時任務管理系統Golang分散式
- ECTS——使用 Golang 開發的分散式定時任務管理系統Golang分散式
- Linux系統管理之定時任務Linux
- django開發-定時任務的使用Django
- Node 系統中定時任務的演化
- 『學了就忘』Linux系統定時任務 — 88、迴圈執行定時任務Linux
- Android開發 定時任務清理資料Android
- 直播系統定製開發的步驟分享,如何進行直播系統定製開發
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- 『學了就忘』Linux系統定時任務 — 87、只執行一次的定時任務Linux
- 定時任務
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- Spring 定時任務Scheduled 開發詳細圖文Spring
- Laravel使用command在Linux系統中跑定時任務LaravelLinux
- 定時任務操作
- SpringTask定時任務Spring
- Java 定時任務Java
- At 、Crontabl定時任務
- @Scheduled 定時任務
- Oracle定時任務Oracle
- Navicat定時任務
- schedule 定時任務
- SpringBoot定時任務Spring Boot
- 定時任務管理
- ubuntu定時任務Ubuntu
- Linux | 定時任務Linux
- springboot:定時任務Spring Boot
- laravel定時任務Laravel
- crontab定時任務
- 定時任務scheduler
- Linux 定時任務Linux
- 定時任務crond服務
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步