blob: 00917f2160c51afe577b9ec1619fff2cd5491006 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.shardingsphere.elasticjob.cloud.scheduler.fixture;
import org.apache.shardingsphere.elasticjob.cloud.api.simple.SimpleJob;
import org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.scheduler.config.job.CloudJobExecutionType;
import org.apache.shardingsphere.elasticjob.cloud.config.JobCoreConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.dataflow.DataflowJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.script.ScriptJobConfiguration;
import org.apache.shardingsphere.elasticjob.cloud.config.simple.SimpleJobConfiguration;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class CloudJobConfigurationBuilder {
/**
* Create cloud job configuration.
* @param jobName job name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudJobConfiguration(final String jobName) {
return new CloudJobConfiguration("test_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 10).failover(true).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @param jobExecutionType execution type
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudJobConfiguration(final String jobName, final CloudJobExecutionType jobExecutionType) {
return new CloudJobConfiguration("test_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 10).failover(true).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, jobExecutionType);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @param jobExecutionType execution type
* @param shardingTotalCount sharding total count
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudJobConfiguration(final String jobName, final CloudJobExecutionType jobExecutionType, final int shardingTotalCount) {
return new CloudJobConfiguration("test_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", shardingTotalCount).failover(true).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, jobExecutionType);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @param misfire misfire
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudJobConfiguration(final String jobName, final boolean misfire) {
return new CloudJobConfiguration("test_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 10).failover(true).misfire(misfire).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @param appName app name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudJobConfiguration(final String jobName, final String appName) {
return new CloudJobConfiguration(appName,
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 10).failover(true).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createOtherCloudJobConfiguration(final String jobName) {
return new CloudJobConfiguration("test_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 3).failover(false).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createCloudSpringJobConfiguration(final String jobName) {
return new CloudJobConfiguration("test_spring_app",
new SimpleJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 10).failover(true).misfire(true).build(), TestSimpleJob.class.getCanonicalName()),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT, "springSimpleJob", "applicationContext.xml");
}
/**
* Create cloud job configuration.
* @param jobName job name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createDataflowCloudJobConfiguration(final String jobName) {
return new CloudJobConfiguration("test_app",
new DataflowJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", 3).failover(false).misfire(false).build(), SimpleJob.class.getCanonicalName(), true),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
/**
* Create cloud job configuration.
* @param jobName job name
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createScriptCloudJobConfiguration(final String jobName) {
return createScriptCloudJobConfiguration(jobName, 3);
}
/**
* Create script cloud job configuration.
* @param jobName job name
* @param shardingTotalCount sharding total count
* @return CloudJobConfiguration
*/
public static CloudJobConfiguration createScriptCloudJobConfiguration(final String jobName, final int shardingTotalCount) {
return new CloudJobConfiguration("test_app",
new ScriptJobConfiguration(JobCoreConfiguration.newBuilder(jobName, "0/30 * * * * ?", shardingTotalCount).failover(false).misfire(false).build(), "test.sh"),
1.0d, 128.0d, CloudJobExecutionType.TRANSIENT);
}
}