aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/UpdateArticleCallable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/UpdateArticleCallable.java')
-rwxr-xr-xsrc/main/java/io/trygvis/UpdateArticleCallable.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/UpdateArticleCallable.java b/src/main/java/io/trygvis/UpdateArticleCallable.java
new file mode 100755
index 0000000..7ed8b63
--- /dev/null
+++ b/src/main/java/io/trygvis/UpdateArticleCallable.java
@@ -0,0 +1,44 @@
+package io.trygvis;
+
+import io.trygvis.model.*;
+import io.trygvis.queue.*;
+import org.slf4j.*;
+import org.springframework.stereotype.*;
+import org.springframework.transaction.annotation.*;
+
+import java.util.*;
+import javax.persistence.*;
+
+import static org.springframework.transaction.annotation.Propagation.*;
+
+@Component
+public class UpdateArticleCallable
+ implements AsyncService.AsyncCallable {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ private final Random r = new Random();
+
+ @PersistenceContext
+ private EntityManager entityManager;
+
+// @Transactional(propagation = REQUIRES_NEW)
+ public void run() throws Exception {
+ log.info("UpdateArticeJob.run: BEGIN");
+
+ Date now = new Date();
+
+ log.info("now = {}", now);
+
+ TypedQuery<Article> q = entityManager.createQuery(entityManager.getCriteriaBuilder().createQuery(Article.class));
+
+ List<Article> list = q.getResultList();
+ log.info("Got {} articles", list.size());
+
+ Article a = list.get(r.nextInt(list.size()));
+ a.setUpdated(new Date());
+
+ entityManager.persist(a);
+
+ log.info("UpdateArticeJob.run: END");
+ }
+}