Skip to content

Commit e7f5154

Browse files
committed
failing task may succeed
1 parent 2629e2f commit e7f5154

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

example/src/main/java/org/sterl/spring/example_app/vehicle/task/BuildVehicleTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
package org.sterl.spring.example_app.vehicle.task;
22

3+
import java.util.Random;
4+
35
import org.springframework.stereotype.Component;
46
import org.springframework.transaction.annotation.Transactional;
57
import org.sterl.spring.example_app.vehicle.model.Vehicle;
68
import org.sterl.spring.example_app.vehicle.repository.VehicleRepository;
7-
import org.sterl.spring.persistent_tasks.api.SpringBeanTask;
89
import org.sterl.spring.persistent_tasks.api.TaskId;
10+
import org.sterl.spring.persistent_tasks.api.TransactionalTask;
911

1012
import lombok.RequiredArgsConstructor;
1113
import lombok.extern.slf4j.Slf4j;
1214

1315
@Component(BuildVehicleTask.NAME)
1416
@RequiredArgsConstructor
1517
@Slf4j
16-
public class BuildVehicleTask implements SpringBeanTask<Vehicle> {
18+
public class BuildVehicleTask implements TransactionalTask<Vehicle> {
1719

1820
static final String NAME = "buildVehicleTask";
1921
public static final TaskId<Vehicle> ID = new TaskId<>(NAME);
20-
22+
private final Random random = new Random();
2123
private final VehicleRepository vehicleRepository;
2224

2325
@Transactional(timeout = 5)
@@ -26,7 +28,7 @@ public void accept(Vehicle vehicle) {
2628
vehicleRepository.save(vehicle);
2729
log.info("Create vehicle ={}", vehicle);
2830
try {
29-
Thread.sleep(1500);
31+
Thread.sleep(random.nextInt(3501));
3032
} catch (InterruptedException e) {
3133
Thread.interrupted();
3234
}
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
package org.sterl.spring.example_app.vehicle.task;
22

3+
import java.util.Random;
4+
35
import org.springframework.stereotype.Component;
46
import org.sterl.spring.example_app.vehicle.model.Vehicle;
57
import org.sterl.spring.example_app.vehicle.repository.VehicleRepository;
6-
import org.sterl.spring.persistent_tasks.api.SpringBeanTask;
78
import org.sterl.spring.persistent_tasks.api.TaskId;
9+
import org.sterl.spring.persistent_tasks.api.TransactionalTask;
810

911
import lombok.RequiredArgsConstructor;
1012
import lombok.extern.slf4j.Slf4j;
1113

1214
@Component(FailingBuildVehicleTask.NAME)
1315
@RequiredArgsConstructor
1416
@Slf4j
15-
public class FailingBuildVehicleTask implements SpringBeanTask<Vehicle> {
17+
public class FailingBuildVehicleTask implements TransactionalTask<Vehicle> {
1618

1719
static final String NAME = "failingBuildVehicleTask";
1820
public static final TaskId<Vehicle> ID = new TaskId<>(NAME);
19-
21+
private final Random random = new Random();
2022
private final VehicleRepository vehicleRepository;
2123

2224
@Override
2325
public void accept(Vehicle vehicle) {
2426
vehicleRepository.save(vehicle);
2527
log.info("Create vehicle with {} - which will fail", vehicle);
2628
try {
27-
Thread.sleep(3500);
29+
Thread.sleep(random.nextInt(3501));
2830
} catch (InterruptedException e) {
2931
Thread.interrupted();
3032
}
31-
throw new RuntimeException("This persistentTask will always fail!");
33+
if (random.nextInt(11) % 2 == 0)
34+
throw new RuntimeException("This persistentTask will always fail!");
3235
}
3336
}

0 commit comments

Comments
 (0)