webSocket 定時任務實時通知前台變化

2021-09-23 10:35:32 字數 2344 閱讀 5597

後台發生變化時,可以通過實事件觸發或者是定時任務,此處用的是定時任務

1、websocketconfig配置類:

/**

* @program: wealth_management

* @description: websocketconfig配置類

* @author: sgq

* @create: 2019/04/23

*/@configuration

public class websocketconfig

}

2、websocketserver服務端,給前端呼叫:

/**

* @program: wealth.product.service

* @description: websocketserver核心類-實時獲取產品剩餘額度

* @author: sgq

* @create: 2019/05/15

*/@component

public class remainamountwebsocketserver

private productservice productservice;

private static int onlinecount = 0;

//concurrenthashmap的執行緒安全map,用來存放每個客戶端對應的mywebsocket物件。

private static concurrenthashmapsocketmap = new concurrenthashmap<>();

private static concurrenthashmaptaskmap = new concurrenthashmap<>();

//與某個客戶端的連線會話,需要通過它來給客戶端傳送資料

private session session;

/*** 連線建立成功呼叫的方法

*/@onopen

this.session = session;

try else

}}, new crontrigger("0/2 * * * * *"));

// 在關閉連線時關閉定時任務

} catch (exception e)

}/**

* 連線關閉呼叫的方法

*/@onclose

public void onclose()

}/**

* 收到客戶端訊息後呼叫的方法

** @param message 客戶端傳送過來的訊息

*/@onmessage

public void onmessage(string message, session session) catch (exception e) }}

/*** @param session

* @param error

*/@onerror

public void onerror(session session, throwable error)

/*** 實現伺服器主動推送

*/public void sendmessage(string message) catch (exception e)

}/**

* **自定義訊息

*/try

} else

} catch (exception e)

}public static synchronized int getonlinecount()

public static synchronized void addonlinecount()

public static synchronized void subonlinecount()

}

3、定時任務task:

/**

* @program: demo

* @description: 定時任務處理類

* @author: sgq

* @create: 2019/04/25

*/public class taskscheduler

/*** 啟動任務

**/public void startcron(runnable runnable, crontrigger crontrigger)

/*** 停止任務

**/public void stopcron()

}/**

* 變更任務間隔,再次啟動

**/public void changecron(runnable runnable, crontrigger crontrigger)

}

oracle定時任務例項

1 建立測試表與序列號 sql view plain copy print?create table job test id integer,add time date sql view plain copy print?create sequence seq tm id minvalue 1 ma...

spring boot 定時任務實現

scheduled 使用 scheduled 非常容易,直接建立乙個 spring boot 專案,並且新增 web 依賴 spring boot starter web,專案建立成功後,新增 enablescheduling 註解,開啟定時任務 enablescheduling 開啟定時任務 pu...

Spring定時任務實現

一 spring 定時任務 component enablescheduling 可以在啟動類上註解也可以在當前檔案 public class testschedule scheduled fixedrate 1000 10 public void runsecend scheduled fixed...