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. debian - docker依賴的aufs-tools源碼哪里可以找到啊?2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?4. docker-compose 為何找不到配置文件?5. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””6. angular.js - angular內(nèi)容過長(zhǎng)展開收起效果7. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????8. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。9. macos - mac下docker如何設(shè)置代理10. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?

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