Как перенаправить в фоновые задачи в моем веб-приложении - PullRequest
0 голосов
/ 11 октября 2019

Я хочу перенаправить 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");
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...