java 隨機(jī)延遲執(zhí)行
問題描述
怎么讓一個(gè)程序延遲執(zhí)行,指定延遲時(shí)間訪問,比如收到請(qǐng)求后對(duì)該請(qǐng)求進(jìn)行記錄,讓后續(xù)操作在一天呢延遲執(zhí)行
問題解答
回答1:可以使用調(diào)度框架 quartz
回答2:1.收到數(shù)據(jù)存庫記錄下來
2.linux下可以使用crond進(jìn)行定時(shí)任務(wù)檢查任務(wù),并調(diào)用java提供得觸發(fā)任務(wù)接口
3.把任務(wù)加入redis,使用java進(jìn)行定時(shí)處理。
回答3:收到一個(gè)請(qǐng)求就創(chuàng)建一個(gè)線程,用ScheduledThreadPoolExecutor方法在固定的延遲后執(zhí)行。
回答4:SpringMVC里面的Quartz,可以自由配置多個(gè)定時(shí)的任務(wù)
回答5:如果是Java Web項(xiàng)目,就在后臺(tái)啟動(dòng)一個(gè)Servlet,例如<servlet><servlet-name>servlet的名字</servlet-name><servlet-class>servlet所在的包的路徑</servlet-class> <load-on-startup>1</load-on-startup></servlet>
并在后臺(tái)維護(hù)一個(gè)線程池,將需要延遲執(zhí)行的請(qǐng)求加入到線程池中,并為每個(gè)線程加上時(shí)間標(biāo)識(shí),以便后續(xù)檢查,Servlet定期從線程池中取出線程,檢查是否該執(zhí)行,如果滿足執(zhí)行條件,則執(zhí)行,如果不滿足,就將線程放回線程池。如果不是Web項(xiàng)目,可以使用Java的Timer,同時(shí)也維護(hù)一個(gè)線程池,使用Timer定時(shí)去做檢查。
相關(guān)文章:
1. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.2. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類3. docker-compose中volumes的問題4. boot2docker無法啟動(dòng)5. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?6. nignx - docker內(nèi)nginx 80端口被占用7. javascript - vue生成一維碼?求助!!!!!急8. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎9. 如何使用git對(duì)word文檔進(jìn)行版本控制?10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會(huì)消失是什么情況?

網(wǎng)公網(wǎng)安備