Search in sources :

Example 1 with JobScheduler

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

the class SaturnExecutor method shutdownUnfinishJob.

private void shutdownUnfinishJob() {
    Map<String, JobScheduler> schdMap = JobRegistry.getSchedulerMap().get(executorName);
    if (schdMap != null) {
        Iterator<String> it = schdMap.keySet().iterator();
        while (it.hasNext()) {
            String jobName = it.next();
            JobScheduler jobScheduler = schdMap.get(jobName);
            if (jobScheduler != null) {
                if (!regCenter.isConnected() || jobScheduler.getCurrentConf().isEnabled()) {
                    log.info("[{}] msg=job {} is enabled, force shutdown.", jobName, jobName);
                    jobScheduler.stopJob(true);
                }
                jobScheduler.shutdown(false);
            }
        }
    }
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler)

Example 2 with JobScheduler

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

the class ConfigurationServiceTest method test_A_isInPausePeriodDate.

@Test
public void test_A_isInPausePeriodDate() throws Exception {
    JobConfiguration jobConfiguration = new JobConfiguration("");
    jobConfiguration.setPausePeriodDate("09/11-10/01");
    ZookeeperRegistryCenter zookeeperRegistryCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration());
    zookeeperRegistryCenter.setExecutorName("haha");
    ConfigurationService configurationService = new ConfigurationService(new JobScheduler(zookeeperRegistryCenter, jobConfiguration));
    try {
        Calendar calendar = Calendar.getInstance();
        // 注意,日期从0-11,这里实际上是9月
        calendar.set(2016, 8, 12, 11, 40);
        boolean inPausePeriod = configurationService.isInPausePeriod(calendar.getTime());
        assertThat(inPausePeriod).isTrue();
    } finally {
        JobRegistry.clearExecutor(zookeeperRegistryCenter.getExecutorName());
    }
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler) ZookeeperRegistryCenter(com.vip.saturn.job.reg.zookeeper.ZookeeperRegistryCenter) Calendar(java.util.Calendar) ZookeeperConfiguration(com.vip.saturn.job.reg.zookeeper.ZookeeperConfiguration) Test(org.junit.Test)

Example 3 with JobScheduler

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

the class ConfigurationServiceTest method test_A_isInPausePeriodDateAndTime.

@Test
public void test_A_isInPausePeriodDateAndTime() throws Exception {
    JobConfiguration jobConfiguration = new JobConfiguration("");
    jobConfiguration.setPausePeriodDate("09/11-10/01");
    jobConfiguration.setPausePeriodTime("11:30-12:00");
    jobConfiguration.setTimeZone(TimeZone.getDefault().getID());
    ZookeeperRegistryCenter zookeeperRegistryCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration());
    zookeeperRegistryCenter.setExecutorName("haha");
    ConfigurationService configurationService = new ConfigurationService(new JobScheduler(zookeeperRegistryCenter, jobConfiguration));
    try {
        Calendar calendar = Calendar.getInstance();
        // 注意,日期从0-11,这里实际上是9月
        calendar.set(2016, 8, 12, 11, 40);
        boolean inPausePeriod = configurationService.isInPausePeriod(calendar.getTime());
        assertThat(inPausePeriod).isTrue();
    } finally {
        JobRegistry.clearExecutor(zookeeperRegistryCenter.getExecutorName());
    }
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler) ZookeeperRegistryCenter(com.vip.saturn.job.reg.zookeeper.ZookeeperRegistryCenter) Calendar(java.util.Calendar) ZookeeperConfiguration(com.vip.saturn.job.reg.zookeeper.ZookeeperConfiguration) Test(org.junit.Test)

Example 4 with JobScheduler

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

the class ConfigurationServiceTest method test_A_isInPausePeriodTime.

@Test
public void test_A_isInPausePeriodTime() throws Exception {
    JobConfiguration jobConfiguration = new JobConfiguration("");
    jobConfiguration.setPausePeriodTime("11:30-12:00");
    jobConfiguration.setTimeZone(TimeZone.getDefault().getID());
    ZookeeperRegistryCenter zookeeperRegistryCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration());
    zookeeperRegistryCenter.setExecutorName("haha");
    ConfigurationService configurationService = new ConfigurationService(new JobScheduler(zookeeperRegistryCenter, jobConfiguration));
    try {
        Calendar calendar = Calendar.getInstance();
        // 注意,日期从0-11,这里实际上是9月
        calendar.set(2016, 8, 12, 11, 40);
        boolean inPausePeriod = configurationService.isInPausePeriod(calendar.getTime());
        assertThat(inPausePeriod).isTrue();
    } finally {
        JobRegistry.clearExecutor(zookeeperRegistryCenter.getExecutorName());
    }
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler) ZookeeperRegistryCenter(com.vip.saturn.job.reg.zookeeper.ZookeeperRegistryCenter) Calendar(java.util.Calendar) ZookeeperConfiguration(com.vip.saturn.job.reg.zookeeper.ZookeeperConfiguration) Test(org.junit.Test)

Example 5 with JobScheduler

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

the class SaturnExecutor method scheduleJob.

private boolean scheduleJob(String jobName) {
    log.info("[{}] msg=add new job {} - {}", jobName, executorName, jobName);
    JobConfiguration jobConfig = new JobConfiguration(regCenter, jobName);
    if (jobConfig.getSaturnJobClass() == null) {
        log.warn("[{}] msg={} - {} the saturnJobClass is null, jobType is {}", jobConfig, executorName, jobName, jobConfig.getJobType());
        return false;
    }
    if (jobConfig.isDeleting()) {
        log.warn("[{}] msg={} - {} the job is on deleting", jobName, executorName, jobName);
        String serverNodePath = JobNodePath.getServerNodePath(jobName, executorName);
        regCenter.remove(serverNodePath);
        return false;
    }
    JobScheduler scheduler = new JobScheduler(regCenter, jobConfig);
    scheduler.setSaturnExecutorService(saturnExecutorService);
    return scheduler.init();
}
Also used : JobScheduler(com.vip.saturn.job.basic.JobScheduler) JobConfiguration(com.vip.saturn.job.internal.config.JobConfiguration)

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