Browse Source

Make submitJob async

pull/13285/head
ViacheslavKlimov 1 year ago
parent
commit
2bb6eab0ed
  1. 5
      application/src/main/java/org/thingsboard/server/service/job/DefaultJobManager.java
  2. 4
      application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java
  3. 4
      rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/JobManager.java

5
application/src/main/java/org/thingsboard/server/service/job/DefaultJobManager.java

@ -49,6 +49,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -77,9 +78,9 @@ public class DefaultJobManager implements JobManager {
}
@Override
public Job submitJob(Job job) {
public Future<Job> submitJob(Job job) {
log.debug("Submitting job: {}", job);
return jobService.saveJob(job.getTenantId(), job);
return executor.submit(() -> jobService.saveJob(job.getTenantId(), job));
}
@Override

4
application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java

@ -15,6 +15,7 @@
*/
package org.thingsboard.server.service.job;
import lombok.SneakyThrows;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@ -454,6 +455,7 @@ public class JobManagerTest extends AbstractControllerTest {
return submitJob(configuration, "test-job");
}
@SneakyThrows
private Job submitJob(DummyJobConfiguration configuration, String key) {
return jobManager.submitJob(Job.builder()
.tenantId(tenantId)
@ -461,7 +463,7 @@ public class JobManagerTest extends AbstractControllerTest {
.key(key)
.entityId(jobEntity.getId())
.configuration(configuration)
.build());
.build()).get();
}
private List<DummyTaskFailure> getFailures(JobResult jobResult) {

4
rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/JobManager.java

@ -19,9 +19,11 @@ import org.thingsboard.server.common.data.id.JobId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.job.Job;
import java.util.concurrent.Future;
public interface JobManager {
Job submitJob(Job job); // TODO: rate limits
Future<Job> submitJob(Job job); // TODO: rate limits
void cancelJob(TenantId tenantId, JobId jobId);

Loading…
Cancel
Save