Skip to content

Commit

Permalink
fixes #354 MSSQL task_data datatype
Browse files Browse the repository at this point in the history
  • Loading branch information
quaso committed Feb 14, 2023
1 parent 8ffe825 commit 0afdd57
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@
import org.slf4j.LoggerFactory;

import javax.sql.DataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
Expand Down Expand Up @@ -103,7 +101,7 @@ public boolean createIfNotExists(SchedulableInstance instance) {
(PreparedStatement p) -> {
p.setString(1, taskInstance.getTaskName());
p.setString(2, taskInstance.getId());
p.setObject(3, serializer.serialize(taskInstance.getData()));
p.setBytes(3, serializer.serialize(taskInstance.getData()));
jdbcCustomization.setInstant(p, 4, instance.getNextExecutionTime(clock.now()));
p.setBoolean(5, false);
p.setLong(6, 1L);
Expand Down Expand Up @@ -159,7 +157,7 @@ public Instant replace(Execution toBeReplaced, SchedulableInstance newInstance)
ps.setInt(index++, 0); // consecutive_failures
jdbcCustomization.setInstant(ps, index++, newExecutionTime); // execution_time
// may cause datbase-specific problems, might have to use setNull instead
ps.setObject(index++, serializer.serialize(newData)); // task_data
ps.setBytes(index++, serializer.serialize(newData)); // task_data
ps.setString(index++, toBeReplaced.taskInstance.getTaskName()); // task_name
ps.setString(index++, toBeReplaced.taskInstance.getId()); // task_instance
ps.setLong(index++, toBeReplaced.version); // version
Expand Down Expand Up @@ -273,7 +271,7 @@ private boolean rescheduleInternal(Execution execution, Instant nextExecutionTim
jdbcCustomization.setInstant(ps, index++, nextExecutionTime);
if (newData != null) {
// may cause datbase-specific problems, might have to use setNull instead
ps.setObject(index++, serializer.serialize(newData.data));
ps.setBytes(index++, serializer.serialize(newData.data));
}
ps.setString(index++, execution.taskInstance.getTaskName());
ps.setString(index++, execution.taskInstance.getId());
Expand Down
2 changes: 1 addition & 1 deletion db-scheduler/src/test/resources/mssql_tables.sql
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
create table scheduled_tasks (
task_name varchar(250) not null,
task_instance varchar(250) not null,
task_data nvarchar(max),
task_data varbinary(max),
execution_time datetimeoffset not null,
picked bit,
picked_by text,
Expand Down

0 comments on commit 0afdd57

Please sign in to comment.