Я хочу перенаправить URL с задачей . Сейчас я устанавливаю в классе, который реализует ServletContextListener
. Я думаю, ServletContextListener
подходит для фоновых задач в течение жизненного цикла сервлета. Но это только фоновая задача. Я хочу перенаправить URL в определенное время . Я не хочу фильтровать все запросы. Я перенаправлю свой URL с текущей страницы в определенное время (например, 10 утра). Поэтому мне нужно запускать фоновые задачи. Определенное время - следующий шаг. Теперь мне нужно перенаправить или вызвать url из фоновой задачи.
Мой код:
public class SiteMapGenerator implements ServletContextListener {
private ScheduledExecutorService scheduler;
@Override
public void contextInitialized(ServletContextEvent event) {
scheduler = Executors.newSingleThreadScheduledExecutor();
Runnable command = new SiteMapThread(event.getServletContext());
// Delay 1 Minute to first execution
long initialDelay = 1;
TimeUnit unit = TimeUnit.MINUTES;
// period the period between successive executions
long period = 60;// 60 Minute!
scheduler.scheduleAtFixedRate(command, initialDelay, period, unit);
}
@Override
public void contextDestroyed(ServletContextEvent event) {
System.out.println("Shut Down>>>>>>>>>>>>>>>>>>>>>>>>>");
scheduler.shutdownNow();
}
}
SiteMapThread.java
public class SiteMapThread implements Runnable {
private ServletContext context;
public SiteMapThread(ServletContext context) {
this.context = context;
}
@Override
public void run() {
System.out.println("Generate sitemap ... " + new Date());
try {
/*
* task job
*/
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("Finish generation");
}