Search in sources :

Example 11 with JobScheduler

use of com.vip.saturn.job.basic.JobScheduler in project Saturn by vipshop.

the class SaturnExecutor method shutdownJobSchedulers.

private void shutdownJobSchedulers() {
    Map<String, JobScheduler> schdMap = JobRegistry.getSchedulerMap().get(executorName);
    if (MapUtils.isEmpty(schdMap)) {
        return;
    }
    long startTime = System.currentTimeMillis();
    List<Future<?>> futures = new ArrayList<>();
    Iterator<String> it = schdMap.keySet().iterator();
    while (it.hasNext()) {
        final String jobName = it.next();
        final JobScheduler jobScheduler = schdMap.get(jobName);
        if (jobScheduler != null) {
            futures.add(shutdownJobsExecutorService.submit(new Runnable() {

                @Override
                public void run() {
                    try {
                        jobScheduler.shutdown(false);
                    } catch (Throwable t) {
                        LogUtils.error(log, jobName, "shutdown JobScheduler error", t);
                    }
                }
            }));
        }
    }
    for (Future<?> future : futures) {
        try {
            future.get();
        } catch (Exception e) {
            LogUtils.error(log, LogEvents.ExecutorEvent.SHUTDOWN, "wait shutdown job error", e);
        }
    }
    LogUtils.info(log, LogEvents.ExecutorEvent.SHUTDOWN, "Shutdown phase [shutdownJobSchedulers] took {}ms", System.currentTimeMillis() - startTime);
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler) Future(java.util.concurrent.Future) SaturnExecutorException(com.vip.saturn.job.exception.SaturnExecutorException) IOException(java.io.IOException)

Aggregations

JobScheduler (com.vip.saturn.job.basic.JobScheduler)11 Test (org.junit.Test)5 ZookeeperConfiguration (com.vip.saturn.job.reg.zookeeper.ZookeeperConfiguration)4 ZookeeperRegistryCenter (com.vip.saturn.job.reg.zookeeper.ZookeeperRegistryCenter)4 Calendar (java.util.Calendar)4 Map (java.util.Map)2 SaturnExecutorException (com.vip.saturn.job.exception.SaturnExecutorException)1 JobConfiguration (com.vip.saturn.job.internal.config.JobConfiguration)1 IOException (java.io.IOException)1 Entry (java.util.Map.Entry)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 Future (java.util.concurrent.Future)1