Blame | Last modification | View Log | RSS feed
package in.shop2020.catalog.util;import java.util.Calendar;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class ReportSenderScheduler implements ServletContextListener {private ScheduledExecutorService scheduler;@Overridepublic void contextDestroyed(ServletContextEvent arg0) {scheduler.shutdownNow();}@Overridepublic void contextInitialized(ServletContextEvent arg0) {Calendar calendarNow = Calendar.getInstance();Calendar calendarScheduled = Calendar.getInstance();int diff = Calendar.MONDAY - calendarNow.get(Calendar.DAY_OF_WEEK);if (!(diff > 0)) {diff += 7;}calendarScheduled.add(Calendar.DAY_OF_MONTH, diff);calendarScheduled.set(Calendar.HOUR, 6);calendarScheduled.set(Calendar.MINUTE, 0);calendarScheduled.set(Calendar.AM_PM, Calendar.AM);scheduler = Executors.newSingleThreadScheduledExecutor();//Scheduled to run on every Monday 6am.scheduler.scheduleAtFixedRate(new ReportSender(), calendarScheduled.getTimeInMillis() - calendarNow.getTimeInMillis(), 7 * 86400*1000,TimeUnit.MILLISECONDS);}}