aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/Main.java')
-rwxr-xr-xsrc/main/java/io/trygvis/Main.java45
1 files changed, 28 insertions, 17 deletions
diff --git a/src/main/java/io/trygvis/Main.java b/src/main/java/io/trygvis/Main.java
index 0a31aaa..f2f540f 100755
--- a/src/main/java/io/trygvis/Main.java
+++ b/src/main/java/io/trygvis/Main.java
@@ -1,17 +1,21 @@
package io.trygvis;
import io.trygvis.queue.*;
+import io.trygvis.queue.Queue;
import org.hibernate.dialect.*;
import org.slf4j.*;
import org.slf4j.bridge.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.context.support.*;
import org.springframework.stereotype.*;
+import org.springframework.transaction.*;
+import org.springframework.transaction.support.*;
import java.util.*;
import static java.lang.System.*;
import static java.lang.Thread.*;
+import static org.springframework.transaction.TransactionDefinition.PROPAGATION_REQUIRED;
@Component
public class Main {
@@ -48,7 +52,10 @@ public class Main {
}
@Autowired
- private AsyncService<AsyncService.QueueRef, AsyncService.ExecutionRef> asyncService;
+ private TransactionTemplate transactionTemplate;
+
+ @Autowired
+ private AsyncService asyncService;
@Autowired
@Qualifier("createArticle")
@@ -61,35 +68,39 @@ public class Main {
public void run() throws Exception {
log.info("Main.run");
- JpaAsyncService.JpaQueueRef queueRef = asyncService.registerQueue("create-queue", 10, createArticleCallable);
- log.info("queue registered: ref = {}", queueRef);
+ final Queue q = asyncService.registerQueue("create-queue", 10, createArticleCallable);
+// log.info("queue registered: ref = {}", q);
// asyncService.registerQueue("update-queue", 1, updateArticeCallable);
- AsyncService.QueueRef queue = asyncService.getQueue("create-queue");
+// q = asyncService.getQueue("create-queue");
- List<AsyncService.ExecutionRef> refs = new ArrayList<>();
+ final List<Task> tasks = new ArrayList<>();
- for (int i = 0; i < 10; i++) {
- refs.add(asyncService.schedule(queue));
- }
+ transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+ protected void doInTransactionWithoutResult(TransactionStatus status) {
+ for (int i = 0; i < 1; i++) {
+ tasks.add(asyncService.schedule(q));
+ }
+ }
+ });
while (true) {
- log.info("size = {}", refs.size());
- for (Iterator<AsyncService.ExecutionRef> iterator = refs.iterator(); iterator.hasNext(); ) {
- AsyncService.ExecutionRef ref = iterator.next();
+ sleep(10000);
+
+ log.info("tasks.size = {}", tasks.size());
+ for (Iterator<Task> iterator = tasks.iterator(); iterator.hasNext(); ) {
+ Task task = iterator.next();
- ref = asyncService.update(ref);
+ task = asyncService.update(task);
- log.info("ref = {}", ref);
+ log.info("task = {}", task);
- if (ref.isDone()) {
+ if (task.isDone()) {
iterator.remove();
}
-
- sleep(100);
}
- if (refs.isEmpty()) {
+ if (tasks.isEmpty()) {
break;
}
}