|
1 | 1 | package org.jnosql.demoee;
|
2 | 2 |
|
| 3 | +import io.quarkus.virtual.threads.VirtualThreads; |
3 | 4 | import jakarta.enterprise.context.ApplicationScoped;
|
4 | 5 | import jakarta.inject.Inject;
|
| 6 | +import net.datafaker.Faker; |
5 | 7 | import org.eclipse.jnosql.mapping.document.DocumentTemplate;
|
6 | 8 |
|
7 | 9 | import java.util.List;
|
8 | 10 | import java.util.Optional;
|
| 11 | +import java.util.concurrent.ExecutorService; |
9 | 12 | import java.util.logging.Logger;
|
10 | 13 |
|
11 | 14 | @ApplicationScoped
|
12 | 15 | public class CameraService {
|
13 | 16 |
|
14 | 17 | private static final Logger LOGGER = Logger.getLogger(CameraService.class.getName());
|
15 | 18 |
|
| 19 | + private static final Faker FAKER = new Faker(); |
| 20 | + |
16 | 21 | @Inject
|
17 | 22 | DocumentTemplate template;
|
18 | 23 |
|
| 24 | + @Inject |
| 25 | + @VirtualThreads |
| 26 | + ExecutorService vThreads; |
| 27 | + |
19 | 28 | public List<Camera> findAll() {
|
20 | 29 | LOGGER.info("Selecting all cameras");
|
21 | 30 | return template.select(Camera.class).result();
|
@@ -49,4 +58,15 @@ public Camera update(Camera update) {
|
49 | 58 | LOGGER.info("Updating camera: " + update.id());
|
50 | 59 | return template.update(update);
|
51 | 60 | }
|
| 61 | + |
| 62 | + public void insertAsync(int size) { |
| 63 | + LOGGER.info("Inserting cameras async the size: " + size); |
| 64 | + |
| 65 | + vThreads.submit(() -> { |
| 66 | + for (int index = 0; index < size; index++) { |
| 67 | + Camera camera = Camera.of(FAKER); |
| 68 | + template.insert(camera); |
| 69 | + } |
| 70 | + }); |
| 71 | + } |
52 | 72 | }
|
0 commit comments