java 隨機延遲執(zhí)行
問題描述
怎么讓一個程序延遲執(zhí)行,指定延遲時間訪問,比如收到請求后對該請求進行記錄,讓后續(xù)操作在一天呢延遲執(zhí)行
問題解答
回答1:可以使用調(diào)度框架 quartz
回答2:1.收到數(shù)據(jù)存庫記錄下來
2.linux下可以使用crond進行定時任務(wù)檢查任務(wù),并調(diào)用java提供得觸發(fā)任務(wù)接口
3.把任務(wù)加入redis,使用java進行定時處理。
回答3:收到一個請求就創(chuàng)建一個線程,用ScheduledThreadPoolExecutor方法在固定的延遲后執(zhí)行。
回答4:SpringMVC里面的Quartz,可以自由配置多個定時的任務(wù)
回答5:如果是Java Web項目,就在后臺啟動一個Servlet,例如<servlet><servlet-name>servlet的名字</servlet-name><servlet-class>servlet所在的包的路徑</servlet-class> <load-on-startup>1</load-on-startup></servlet>
并在后臺維護一個線程池,將需要延遲執(zhí)行的請求加入到線程池中,并為每個線程加上時間標識,以便后續(xù)檢查,Servlet定期從線程池中取出線程,檢查是否該執(zhí)行,如果滿足執(zhí)行條件,則執(zhí)行,如果不滿足,就將線程放回線程池。如果不是Web項目,可以使用Java的Timer,同時也維護一個線程池,使用Timer定時去做檢查。
相關(guān)文章:
1. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?2. javascript - Web微信聊天輸入框解決方案3. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應(yīng)4. javascript - log4js的使用問題5. docker - 如何修改運行中容器的配置6. javascript - 移動端textarea不能上下滑動,該怎么解決?7. javascript - history.replaceState()無法改變query參數(shù)8. javascript - 為什么form表單提交沒有跨域問題,但ajax提交有跨域問題?9. javascript - Ajax加載Json時,移動端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?10. javascript - 為什么這個點擊事件需要點擊兩次才有效果
