aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/queue/TaskDao.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2013-04-20 17:29:18 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2013-04-20 17:31:02 +0200
commita03d5154456587fc7920e632f083cc5f1e4318a9 (patch)
tree08cddc03fc61aae0cfd4deb08bd8f99aca19bd40 /src/main/java/io/trygvis/queue/TaskDao.java
parent637dddf11f5d60b35c9696914e1e2658b2ddc611 (diff)
downloadquartz-based-queue-a03d5154456587fc7920e632f083cc5f1e4318a9.tar.gz
quartz-based-queue-a03d5154456587fc7920e632f083cc5f1e4318a9.tar.bz2
quartz-based-queue-a03d5154456587fc7920e632f083cc5f1e4318a9.tar.xz
quartz-based-queue-a03d5154456587fc7920e632f083cc5f1e4318a9.zip
wip
Diffstat (limited to 'src/main/java/io/trygvis/queue/TaskDao.java')
-rw-r--r--src/main/java/io/trygvis/queue/TaskDao.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/io/trygvis/queue/TaskDao.java b/src/main/java/io/trygvis/queue/TaskDao.java
index 2e407a5..2bf2145 100644
--- a/src/main/java/io/trygvis/queue/TaskDao.java
+++ b/src/main/java/io/trygvis/queue/TaskDao.java
@@ -3,12 +3,16 @@ package io.trygvis.queue;
import org.springframework.beans.factory.annotation.*;
import org.springframework.jdbc.core.*;
import org.springframework.stereotype.*;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.sql.*;
import java.util.Date;
import java.util.*;
import static java.util.Arrays.*;
+import static org.springframework.transaction.annotation.Propagation.MANDATORY;
+import static org.springframework.transaction.annotation.Propagation.REQUIRED;
@Component
public class TaskDao {
@@ -16,22 +20,26 @@ public class TaskDao {
@Autowired
private JdbcTemplate jdbcTemplate;
+ @Transactional(propagation = MANDATORY)
public long insert(String queue, Date scheduled, String arguments) {
jdbcTemplate.update("INSERT INTO task(id, run_count, queue, scheduled, arguments) " +
"VALUES(nextval('task_seq'), 0, ?, ?, ?)", queue, scheduled, arguments);
return jdbcTemplate.queryForObject("SELECT currval('task_seq')", Long.class);
}
+ @Transactional(propagation = MANDATORY)
public Task findById(long id) {
return jdbcTemplate.queryForObject("SELECT " + TaskRowMapper.fields + " FROM task WHERE id=?",
new TaskRowMapper(), id);
}
+ @Transactional(propagation = MANDATORY)
public List<Task> findByNameAndCompletedIsNull(String name) {
return jdbcTemplate.query("SELECT " + TaskRowMapper.fields + " FROM task WHERE queue=? AND completed IS NULL",
new TaskRowMapper(), name);
}
+ @Transactional(propagation = MANDATORY)
public void update(Task task) {
jdbcTemplate.update("UPDATE task SET scheduled=?, last_run=?, run_count=?, completed=? WHERE id=?",
task.scheduled, task.lastRun, task.runCount, task.completed, task.id);
@@ -41,6 +49,7 @@ public class TaskDao {
public static final String fields = "id, queue, scheduled, last_run, run_count, completed, arguments";
public Task mapRow(ResultSet rs, int rowNum) throws SQLException {
+ String arguments = rs.getString(7);
return new Task(
rs.getLong(1),
rs.getString(2),
@@ -48,7 +57,7 @@ public class TaskDao {
rs.getTimestamp(4),
rs.getInt(5),
rs.getTimestamp(6),
- asList(rs.getString(7).split(" ")));
+ arguments != null ? asList(arguments.split(" ")) : Collections.<String>emptyList());
}
}
}