我目前正在为一个程序开发一个 servlet 的项目。
此 servlet 不侦听请求,而是希望它在后台运行并每 10 秒执行一次。
我Thread.sleep(10000);
用来完成这个。
让这个 servlet 每 10 秒执行一次,同时允许其他进程运行的最佳方法是什么?
You could use a SingleThreadPool and execute it using a QuartzScheduler. So you can change how often you want it to execute by changin only the configuration file. Your thread becames a job, you can assign priority, etc.
Here is documentation to read:
不要为此使用 servlet。它不会对您可靠地工作,因为 servlet 是专门为响应请求而设计的。相反,使用ServletContextInitializer来安排 TimerTask执行您的后台工作。