国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Task 實(shí)現(xiàn)定時任務(wù) 以及 WebSocket 實(shí)現(xiàn) 訂單提醒 (學(xué)習(xí)筆記)

這篇具有很好參考價值的文章主要介紹了Spring Task 實(shí)現(xiàn)定時任務(wù) 以及 WebSocket 實(shí)現(xiàn) 訂單提醒 (學(xué)習(xí)筆記)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Spring Task 實(shí)現(xiàn)定時任務(wù)

一、Spring Task使用步驟:

1.maven坐標(biāo) spring-context

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

2.啟動類添加注解 @EnableScheduling 開啟任務(wù)調(diào)度

@EnableScheduling//開啟任務(wù)調(diào)度

3.自定義定時任務(wù)類
去設(shè)置網(wǎng)站設(shè)置要 進(jìn)行得定時任務(wù) cron表達(dá)式在線生成器:https://cron.qqe2.com/

@Component
@Slf4j
//創(chuàng)建類  然后再啟動類啟動 即可看到控制臺打印
public class MyTask {
    @Scheduled(cron = "0/5 * * * * ?")
    public void executeTask(){
      log.info("定時任務(wù): {}",new Date());
    }
}

二、Web Socket消息通知

1.導(dǎo)入maven坐標(biāo)

   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>

2.導(dǎo)入websocket組件

@Component
@ServerEndpoint("/ws/{sid}")
public class WebSocketServer {

    //存放會話對象
    private static Map<String, Session> sessionMap = new HashMap();

    /**
     * 連接建立成功調(diào)用的方法
     */
    @OnOpen
    public void onOpen(Session session, @PathParam("sid") String sid) {
        System.out.println("客戶端:" + sid + "建立連接");
        sessionMap.put(sid, session);
    }

    /**
     * 收到客戶端消息后調(diào)用的方法
     *
     * @param message 客戶端發(fā)送過來的消息
     */
    @OnMessage
    public void onMessage(String message, @PathParam("sid") String sid) {
        System.out.println("收到來自客戶端:" + sid + "的信息:" + message);
    }

    /**
     * 連接關(guān)閉調(diào)用的方法
     *
     * @param sid
     */
    @OnClose
    public void onClose(@PathParam("sid") String sid) {
        System.out.println("連接斷開:" + sid);
        sessionMap.remove(sid);
    }

    /**
     * 群發(fā)
     *
     * @param message
     */
    public void sendToAllClient(String message) {
        Collection<Session> sessions = sessionMap.values();
        for (Session session : sessions) {
            try {
                //服務(wù)器向客戶端發(fā)送消息
                session.getBasicRemote().sendText(message);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}

3.設(shè)置配置類

@Configuration
public class WebSocketConfiguration {

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }

}

4.導(dǎo)入代碼

@Component
public class WebSocketTask {
    @Autowired
    private WebSocketServer webSocketServer;

    /**
     * 通過WebSocket每隔5秒向客戶端發(fā)送消息
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void sendMessageToClient() {
        webSocketServer.sendToAllClient("這是來自服務(wù)端的消息:" + DateTimeFormatter.ofPattern("HH:mm:ss").format(LocalDateTime.now()));
    }
}

前端測試代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-828034.html

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>WebSocket Demo</title>
</head>
<body>
    <input id="text" type="text" />
    <button onclick="send()">發(fā)送消息</button>
    <button onclick="closeWebSocket()">關(guān)閉連接</button>
    <div id="message">
    </div>
</body>
<script type="text/javascript">
    var websocket = null;
    var clientId = Math.random().toString(36).substr(2);

    //判斷當(dāng)前瀏覽器是否支持WebSocket
    if('WebSocket' in window){
        //連接WebSocket節(jié)點(diǎn)
        websocket = new WebSocket("ws://localhost:8080/ws/"+clientId);
    }
    else{
        alert('Not support websocket')
    }

    //連接發(fā)生錯誤的回調(diào)方法
    websocket.onerror = function(){
        setMessageInnerHTML("error");
    };

    //連接成功建立的回調(diào)方法
    websocket.onopen = function(){
        setMessageInnerHTML("連接成功");
    }

    //接收到消息的回調(diào)方法
    websocket.onmessage = function(event){
        setMessageInnerHTML(event.data);
    }

    //連接關(guān)閉的回調(diào)方法
    websocket.onclose = function(){
        setMessageInnerHTML("close");
    }

    //監(jiān)聽窗口關(guān)閉事件,當(dāng)窗口關(guān)閉時,主動去關(guān)閉websocket連接,防止連接還沒斷開就關(guān)閉窗口,server端會拋異常。
    window.onbeforeunload = function(){
        websocket.close();
    }

    //將消息顯示在網(wǎng)頁上
    function setMessageInnerHTML(innerHTML){
        document.getElementById('message').innerHTML += innerHTML + '<br/>';
    }

    //發(fā)送消息
    function send(){
        var message = document.getElementById('text').value;
        websocket.send(message);
    }
	
	//關(guān)閉連接
    function closeWebSocket() {
        websocket.close();
    }
</script>
</html>

到了這里,關(guān)于Spring Task 實(shí)現(xiàn)定時任務(wù) 以及 WebSocket 實(shí)現(xiàn) 訂單提醒 (學(xué)習(xí)筆記)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Task(定時任務(wù))框架

    Spring Task(定時任務(wù))框架

    Spring Task 是Spring框架提供的任務(wù)調(diào)度工具,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 應(yīng)用場景: 信用卡每月還款提醒 銀行貸款每月還款提醒 火車票售票系統(tǒng)處理未支付訂單 入職紀(jì)念日為用戶發(fā)送通知 等等… (只要是需要定時處理當(dāng)達(dá)到場景都可以使用Spring Task) cr

    2024年02月05日
    瀏覽(33)
  • 基于Spring Task框架的定時任務(wù)處理

    基于Spring Task框架的定時任務(wù)處理

    1.1 介紹 Spring Task 是Spring框架提供的任務(wù)調(diào)度工具,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 定位: 定時任務(wù)框架 作用: 定時自動執(zhí)行某段Java代碼 應(yīng)用場景: 1). 信用卡每月還款提醒 2). 銀行貸款每月還款提醒 3). 火車票售票系統(tǒng)處理未支付訂單 強(qiáng)調(diào): 只要是需要定時

    2024年01月23日
    瀏覽(28)
  • 【SpringBoot篇】Spring_Task定時任務(wù)框架

    【SpringBoot篇】Spring_Task定時任務(wù)框架

    Spring Task 是 Spring 框架提供的一種任務(wù)調(diào)度和異步處理的解決方案。 可以按照約定的時間自動執(zhí)行某個代碼邏輯 它可以幫助開發(fā)者在 Spring 應(yīng)用中輕松地實(shí)現(xiàn)定時任務(wù)、異步任務(wù)等功能,提高應(yīng)用的效率和可維護(hù)性。 Spring Task 的主要特點(diǎn)包括: 簡單易用:Spring Task 提供了簡

    2024年02月04日
    瀏覽(24)
  • 使用shedlock實(shí)現(xiàn)分布式定時任務(wù)鎖【防止task定時任務(wù)重復(fù)執(zhí)行】

    使用shedlock實(shí)現(xiàn)分布式定時任務(wù)鎖【防止task定時任務(wù)重復(fù)執(zhí)行】

    第一步:引入shedlock相關(guān)依賴 ShedLock還可以使用Mongo,Redis,Hazelcast,ZooKeeper等外部存儲進(jìn)行協(xié)調(diào),例如使用redis則引入下面的包 第二步:創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu),數(shù)據(jù)庫表的腳本如下: 第三步:添加shedlock配置類 (定時任務(wù)防重復(fù)執(zhí)行的配置類) 第四步:在啟動類上添加啟動注

    2024年02月10日
    瀏覽(33)
  • 【學(xué)習(xí)日記2023.5.30】之 訂單處理 訂單狀態(tài)定時處理_來單提醒_用戶催單

    【學(xué)習(xí)日記2023.5.30】之 訂單處理 訂單狀態(tài)定時處理_來單提醒_用戶催單

    Spring Task 訂單狀態(tài)定時處理 WebSocket 來單提醒 客戶催單 功能實(shí)現(xiàn): 訂單狀態(tài)定時處理 、 來單提醒 和 客戶催單 訂單狀態(tài)定時處理: 來單提醒: 客戶催單: 10.1.1 介紹 Spring Task 是Spring框架提供的任務(wù)調(diào)度工具,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 **定位:**定時任

    2024年02月07日
    瀏覽(19)
  • 支付超時取消訂單實(shí)現(xiàn)方案 - 定時任務(wù)、延遲隊(duì)列、消息隊(duì)列等

    支付超時取消訂單實(shí)現(xiàn)方案 - 定時任務(wù)、延遲隊(duì)列、消息隊(duì)列等

    在實(shí)際業(yè)務(wù)場景中,我們經(jīng)常會碰到類似一下場景: 淘寶等購物平臺在訂單支付時,如果30分鐘內(nèi)未支付自動取消。 騰訊會議預(yù)約會議后,在會議開始前15分鐘提醒。 未使用的優(yōu)惠券有效期結(jié)束后,自動將優(yōu)惠券狀態(tài)更新為已過期。 等等。。。 像這種支付超時取消的場景需

    2024年04月22日
    瀏覽(33)
  • 異常 :Unexpected error occurred in scheduled task 。 Spring Boot定時任務(wù)調(diào)度注解@scheduled

    異常 :Unexpected error occurred in scheduled task 。 Spring Boot定時任務(wù)調(diào)度注解@scheduled

    ???????前言: @Scheduled 注解是 Spring Boot 提供的用于定時任務(wù)控制的注解,主要用于控制任務(wù)在某個指定時間執(zhí)行,或者每隔一段時間執(zhí)行 ? ? ? ?異常: Unexpected error occurred in scheduled task :計(jì)劃任務(wù)發(fā)生意外錯誤 這個bug是偶然一次遇見的,當(dāng)時覺得這個描述很簡單,肯定

    2024年02月12日
    瀏覽(45)
  • itheima蒼穹外賣項(xiàng)目學(xué)習(xí)筆記--Day10: 訂單狀態(tài)定時處理/來單提醒和客戶催單

    Spring Task 是Spring框架提供的任務(wù)調(diào)度工具,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 定位:定時任務(wù)框架 作用:定時自動執(zhí)行某段Java代碼 cron表達(dá)式其實(shí)就是一個字符串,通過cron表達(dá)式可以定義任務(wù)觸發(fā)的時間構(gòu)成規(guī)則: 分為6或7個域,由空格分隔開, 每個域代表一個

    2024年02月17日
    瀏覽(20)
  • 蒼穹外賣 Spring Task 來單提醒 催單Apache ECharts day10~11

    蒼穹外賣 Spring Task 來單提醒 催單Apache ECharts day10~11

    Spring Task 訂單狀態(tài)定時處理 WebSocket 來單提醒 客戶催單 功能實(shí)現(xiàn): 訂單狀態(tài)定時處理 、 來單提醒 和 客戶催單 訂單狀態(tài)定時處理: 來單提醒: 客戶催單: 1.1 介紹 Spring Task 是Spring框架提供的 任務(wù)調(diào)度工具 ,可以按照約定的時間自動執(zhí)行某個代碼邏輯。 定位: 定時任務(wù)框

    2024年02月14日
    瀏覽(21)
  • 帝國CMS商城系統(tǒng)實(shí)現(xiàn)在線支付后發(fā)送訂單郵件提醒功能

    本文實(shí)例講述了帝國CMS商城系統(tǒng)實(shí)現(xiàn)在線支付后發(fā)送訂單郵件提醒功能。分享給大家供大家參考,具體如下: 帝國CMS是個強(qiáng)大的內(nèi)容管理系統(tǒng),其商城的功能也很強(qiáng)大,當(dāng)用戶下單,支付后我們怎么知道有用戶下單了呢?因?yàn)槲覀儾荒軙r時刻刻都在網(wǎng)站后臺,不斷的刷新頁面去看

    2023年04月24日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包