diff --git a/admin/app/com/lucidchart/piezo/admin/controllers/Triggers.scala b/admin/app/com/lucidchart/piezo/admin/controllers/Triggers.scala index 32c0a90..bf16383 100644 --- a/admin/app/com/lucidchart/piezo/admin/controllers/Triggers.scala +++ b/admin/app/com/lucidchart/piezo/admin/controllers/Triggers.scala @@ -363,7 +363,8 @@ class Triggers( if (jobHistoryModel.addOneTimeJobIfNotExists(jobKey, id)) { // Single run trigger has its id passed to the scheduler via the job-data-map. The WorkerJobListener will // use that id to update the existing record in job_history table - val jobDataMap = jobHistoryModel.createJobDataMapForOneTimeJob(id) + // Piezo-admin expects job-data-map values for triggers to be stored as strings + val jobDataMap = jobHistoryModel.createJobDataMapForOneTimeJob(id.toString) scheduler.triggerJob(jobKey, jobDataMap) } Ok diff --git a/worker/src/main/scala/com/lucidchart/piezo/JobHistoryModel.scala b/worker/src/main/scala/com/lucidchart/piezo/JobHistoryModel.scala index 51c8cb0..7c3a051 100644 --- a/worker/src/main/scala/com/lucidchart/piezo/JobHistoryModel.scala +++ b/worker/src/main/scala/com/lucidchart/piezo/JobHistoryModel.scala @@ -32,7 +32,7 @@ class JobHistoryModel(getConnection: () => Connection) { final def getOneTimeJobIdFromDataMap(jobDataMap: JobDataMap): Option[String] = Option( jobDataMap.getString(jobDataMapOneTimeJobKey), ) - final def createJobDataMapForOneTimeJob(id: Long): JobDataMap = new JobDataMap( + final def createJobDataMapForOneTimeJob(id: String): JobDataMap = new JobDataMap( java.util.Map.of(jobDataMapOneTimeJobKey, id), ) diff --git a/worker/src/test/scala/com/lucidchart/piezo/ModelTest.scala b/worker/src/test/scala/com/lucidchart/piezo/ModelTest.scala index e6000d9..c6a3c7d 100644 --- a/worker/src/test/scala/com/lucidchart/piezo/ModelTest.scala +++ b/worker/src/test/scala/com/lucidchart/piezo/ModelTest.scala @@ -72,7 +72,9 @@ class ModelTest extends Specification with BeforeAll with AfterAll { /** * Run a body with a connection provider available */ - private def withConnectionProvider[T](failoverEveryConnection: Boolean = false)(body: (() => java.sql.Connection) => T): T = { + private def withConnectionProvider[T]( + failoverEveryConnection: Boolean = false, + )(body: (() => java.sql.Connection) => T): T = { val provider = new PiezoConnectionProvider( dbUrl, "com.mysql.cj.jdbc.Driver", @@ -109,7 +111,9 @@ class ModelTest extends Specification with BeforeAll with AfterAll { jobHistoryModel.getJob(jobKey).toSet mustEqual Set.empty } - "work correctly with a failover for every connection to the database" in withConnectionProvider(failoverEveryConnection=true) { getConnection => + "work correctly with a failover for every connection to the database" in withConnectionProvider( + failoverEveryConnection = true, + ) { getConnection => val jobHistoryModel = new JobHistoryModel(getConnection) val jobKey = new JobKey("blahc", "blahc") val triggerKey = new TriggerKey("blahtnc", "blahtgc")