中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站代碼多彩經(jīng)典模板網(wǎng)站建設(shè)

網(wǎng)站代碼多彩,經(jīng)典模板網(wǎng)站建設(shè),用什么軟件制作動畫視頻,佛山新聞網(wǎng)1、java自帶的Timer Timer是java中自帶的類。 優(yōu)點(diǎn):使用簡單,缺點(diǎn)是當(dāng)添加并執(zhí)行多個任務(wù)時,前面任務(wù)的執(zhí)行用時和異常將影響到后面任務(wù)。 Timer timer new Timer();timer.schedule(new TimerTask() {int i 0;Overridepublic void run() …

1、java自帶的Timer

Timer是java中自帶的類。
優(yōu)點(diǎn):使用簡單,缺點(diǎn)是當(dāng)添加并執(zhí)行多個任務(wù)時,前面任務(wù)的執(zhí)行用時和異常將影響到后面任務(wù)。

Timer timer = new Timer();timer.schedule(new TimerTask() {int i = 0;@Overridepublic void run() {System.out.println("循環(huán)執(zhí)行的代碼塊"+ i++);}},啟動后多長時間按第一次開始執(zhí)行,間隔執(zhí)行時間);

講解:源碼講解

2、ScheduledThreadPool-定時任務(wù)線程池

ScheduledExecutorService 也是Java自帶的類,它可以實(shí)現(xiàn)Timer具備的所有功能,并解決了 Timer類存在的問題。
優(yōu)點(diǎn):該類是JDK1.5自帶的類,使用簡單,缺點(diǎn)是該方案僅適用于單機(jī)環(huán)境。

ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(該線程池里的線程數(shù));scheduledThreadPool.scheduleAtFixedRate(new Runnable() { public void run() {System.out.println("循環(huán)代碼塊");}},初始延遲,遲期, 時間單位);
參數(shù):1、任務(wù)主體(循環(huán)代碼塊) 
2、首次執(zhí)行的延時時間
3、任務(wù)執(zhí)行間隔 
4、間隔時間單位

講解:源碼講解

3、Spring Task

Spring系列框架中Spring Framework自帶的定時任務(wù),可以實(shí)現(xiàn)某些特定需求,比如每周一執(zhí)行某任務(wù)。
1、開啟定時任務(wù)在SpringBoot的啟動類上聲明 @EnableScheduling

@SpringBootApplication
@EnableScheduling //開啟定時任務(wù)
public class SystemApplication {  // --  -- 
}

2、添加定時任務(wù);只需使用@Scheduled注解標(biāo)注即可,如果有多個定時任務(wù),可以創(chuàng)建多個@Scheduled標(biāo)注的方法。Spring Boot 啟動后會自動加載并執(zhí)行定時任務(wù),無需手動操作。

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component  // 把此類托管給 Spring
public class TaskUtils {    // 添加定時任務(wù)    @Scheduled(cron = "30 00 10 0 0 5") // cron表達(dá)式:每周一 10:00:30 執(zhí)行    public void doTask(){        System.out.println("我是定時任務(wù)~");    }
}

4、分布式定時任務(wù)

分布式環(huán)境可以使用 Redis 來實(shí)現(xiàn)定時任務(wù)。
使用 Redis 實(shí)現(xiàn)延遲任務(wù)的方法大體可分為兩類:通過 ZSet 的方式和鍵空間通知的方式。

ZSet 實(shí)現(xiàn)方式

通過 ZSet 實(shí)現(xiàn)定時任務(wù)的思路是,將定時任務(wù)存放到 ZSet 集合中,并且將過期時間存儲到 ZSet 的 Score 字段中,然后通過一個無線循環(huán)來判斷當(dāng)前時間內(nèi)是否有需要執(zhí)行的定時任務(wù),如果有則進(jìn)行執(zhí)行。

import redis.clients.jedis.Jedis;
import utils.JedisUtils;
import java.time.Instant;
import java.util.Set;
public class DelayQueueExample {        private static final String _KEY = "DelayQueueExample";        public static void main(String[] args) throws InterruptedException {        Jedis jedis = JedisUtils.getJedis();        // 30s 后執(zhí)行        long delayTime = Instant.now().plusSeconds(30).getEpochSecond();       jedis.zadd(_KEY, delayTime, "order_1");        // 繼續(xù)添加測試數(shù)據(jù)        jedis.zadd(_KEY, Instant.now().plusSeconds(2).getEpochSecond(), "order_2");       jedis.zadd(_KEY, Instant.now().plusSeconds(2).getEpochSecond(), "order_3");        jedis.zadd(_KEY, Instant.now().plusSeconds(7).getEpochSecond(), "order_4");        jedis.zadd(_KEY, Instant.now().plusSeconds(10).getEpochSecond(), "order_5");        // 開啟定時任務(wù)隊(duì)列        doDelayQueue(jedis);    }    /**     * 定時任務(wù)隊(duì)列消費(fèi)     * @param jedis Redis 客戶端     */    public static void doDelayQueue(Jedis jedis) throws InterruptedException {        while (true) {            // 當(dāng)前時間            Instant nowInstant = Instant.now();            long lastSecond = nowInstant.plusSeconds(-1).getEpochSecond(); // 上一秒時間            long nowSecond = nowInstant.getEpochSecond();            // 查詢當(dāng)前時間的所有任務(wù)            Set data = jedis.zrangeByScore(_KEY, lastSecond, nowSecond);            for (String item : data) {                // 消費(fèi)任務(wù)                System.out.println("消費(fèi):" + item);            }            // 刪除已經(jīng)執(zhí)行的任務(wù)            jedis.zremrangeByScore(_KEY, lastSecond, nowSecond);            Thread.sleep(1000); // 每秒查詢一次        }    }
}

鍵空間通知

可以通過 Redis 的鍵空間通知來實(shí)現(xiàn)定時任務(wù),它的實(shí)現(xiàn)思路是給所有的定時任務(wù)設(shè)置一個過期時間,等到了過期之后,我們通過訂閱過期消息就能感知到定時任務(wù)需要被執(zhí)行了,此時我們執(zhí)行定時任務(wù)即可。
默認(rèn)情況下 Redis 是不開啟鍵空間通知的,需要我們通過 config set notify-keyspace-events Ex 的命令手動開啟。

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
import utils.JedisUtils;
public class TaskExample {    public static final String _TOPIC = "__keyevent@0__:expired"; // 訂閱頻道名稱   public static void main(String[] args) {       Jedis jedis = JedisUtils.getJedis();       // 執(zhí)行定時任務(wù)        doTask(jedis);    }   /**     * 訂閱過期消息,執(zhí)行定時任務(wù)     * @param jedis Redis 客戶端     */    public static void doTask(Jedis jedis) {        // 訂閱過期消息        jedis.psubscribe(new JedisPubSub() {            @Override            public void onPMessage(String pattern, String channel, String message) {                // 接收到消息,執(zhí)行定時任務(wù)                System.out.println("收到消息:" + message);            }            }, _TOPIC);    }
}

SpringBoot中使用Redis實(shí)現(xiàn)分布式鎖

5、springboot整合xxl-job實(shí)現(xiàn)定時任務(wù)

注:后續(xù)繼續(xù)補(bǔ)充

http://www.risenshineclean.com/news/48225.html

相關(guān)文章:

  • 企業(yè)網(wǎng)站只做英文網(wǎng)站搜什么關(guān)鍵詞
  • 服務(wù)器上如何做網(wǎng)站電商運(yùn)營seo
  • 尋找武漢手機(jī)網(wǎng)站建設(shè)精準(zhǔn)引流推廣公司
  • 網(wǎng)站建設(shè)字體顏色代碼網(wǎng)絡(luò)推廣外包業(yè)務(wù)銷售
  • 網(wǎng)店代理靠譜嗎鄭州好的seo外包公司
  • 廈門網(wǎng)頁網(wǎng)絡(luò)營銷優(yōu)化推廣公司
  • 怎么做專門賣二手衣服的網(wǎng)站域名批量查詢工具
  • 深圳網(wǎng)站(建設(shè)信科網(wǎng)絡(luò))seo云優(yōu)化外包
  • 網(wǎng)站租空間多少錢一年青島網(wǎng)絡(luò)優(yōu)化費(fèi)用
  • 如何搭建一個屬于自己的網(wǎng)站陜西seo主管
  • 網(wǎng)站建設(shè)200seo是怎么優(yōu)化的
  • 網(wǎng)站開發(fā)的一次性收益seo大全
  • 網(wǎng)站優(yōu)化軟件開發(fā)黑科技引流推廣神器
  • 如何上傳文件到自己的網(wǎng)站googleplay官方下載
  • 三合一網(wǎng)站建設(shè)是指網(wǎng)絡(luò)營銷成功案例3篇
  • 做外貿(mào)有那些網(wǎng)站平臺北京優(yōu)化核酸檢測
  • 哪個網(wǎng)站做兼職太原關(guān)鍵詞排名優(yōu)化
  • 濟(jì)南網(wǎng)站的公司哪家好經(jīng)典營銷案例
  • 免費(fèi)網(wǎng)頁制作工具下載廣告優(yōu)化師培訓(xùn)
  • 魚臺縣建設(shè)局網(wǎng)站十大場景營銷案例
  • 建設(shè)企業(yè)外貿(mào)網(wǎng)站如何優(yōu)化網(wǎng)絡(luò)速度
  • wordpress 眾籌模板優(yōu)化大師免費(fèi)版下載
  • 中企動力做網(wǎng)站服務(wù)怎么樣seo網(wǎng)絡(luò)推廣報(bào)價(jià)
  • 設(shè)計(jì)網(wǎng)站推薦平面網(wǎng)頁制作作業(yè)100例
  • 怎樣用h5做網(wǎng)站素材網(wǎng)
  • 網(wǎng)站備案照怎么開網(wǎng)站
  • 怎么看網(wǎng)站是dede模板品牌宣傳推廣文案
  • 網(wǎng)站有了域名后怎么還上不了常州seo外包
  • 網(wǎng)站搭建官網(wǎng)個人怎么做網(wǎng)站
  • 手機(jī)怎么做網(wǎng)站添加背景音樂建網(wǎng)站找哪個平臺好呢