package tech.powerjob.client.test; import tech.powerjob.common.enums.ExecuteType; import tech.powerjob.common.enums.ProcessorType; import tech.powerjob.common.enums.TimeExpressionType; import tech.powerjob.common.request.http.SaveJobInfoRequest; import tech.powerjob.common.response.ResultDTO; import org.junit.jupiter.api.Test; import java.util.concurrent.ForkJoinPool; /** * TestConcurrencyControl * * @author tjq * @since 1/16/21 */ class TestConcurrencyControl extends ClientInitializer { @Test void testRunJobConcurrencyControl() { SaveJobInfoRequest saveJobInfoRequest = new SaveJobInfoRequest(); saveJobInfoRequest.setJobName("test concurrency control job"); saveJobInfoRequest.setProcessorType(ProcessorType.SHELL); saveJobInfoRequest.setProcessorInfo("pwd"); saveJobInfoRequest.setExecuteType(ExecuteType.STANDALONE); saveJobInfoRequest.setTimeExpressionType(TimeExpressionType.API); saveJobInfoRequest.setMaxInstanceNum(1); Long jobId = powerJobClient.saveJob(saveJobInfoRequest).getData(); System.out.println("jobId: " + jobId); ForkJoinPool pool = new ForkJoinPool(32); for (int i = 0; i < 100; i++) { String params = "index-" + i; pool.execute(() -> { ResultDTO res = powerJobClient.runJob(jobId, params, 0); System.out.println(params + ": " + res); }); } } }