diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8e5b24e5..6b4fb96c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -eventi = "1.0-rc26" +eventi = "1.0-rc27" exfl = "1.0-rc1" [libraries] diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt index b40840b6..b3e70086 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/Utils.kt @@ -10,6 +10,7 @@ import java.io.FileInputStream import java.io.RandomAccessFile import java.net.InetAddress import java.security.MessageDigest +import java.time.Clock import java.time.LocalDateTime import java.util.zip.CRC32 @@ -218,3 +219,7 @@ fun File.resolveConflict(): File { val LocalDateTimeEpoch: LocalDateTime = LocalDateTime.of(1970, 1, 1, 0, 0, 0) + +fun UtcNow(): LocalDateTime { + return LocalDateTime.now(Clock.systemUTC()) +} \ No newline at end of file diff --git a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt index edf071eb..293b594e 100644 --- a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt +++ b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/EventStore.kt @@ -4,6 +4,7 @@ import no.iktdev.eventi.ZDS import no.iktdev.eventi.models.Event import no.iktdev.eventi.models.store.PersistedEvent import no.iktdev.eventi.stores.EventStore +import no.iktdev.mediaprocessing.shared.common.UtcNow import no.iktdev.mediaprocessing.shared.database.tables.EventsTable import no.iktdev.mediaprocessing.shared.database.withTransaction import org.jetbrains.exposed.sql.insert @@ -59,7 +60,7 @@ object EventStore: EventStore { it[EventsTable.eventId] = event.eventId.toString() it[EventsTable.event] = eventName it[EventsTable.data] = asData - it[EventsTable.persistedAt] = LocalDateTime.now() + it[EventsTable.persistedAt] = UtcNow() } } } diff --git a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt index 6f2b0225..61400a62 100644 --- a/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt +++ b/shared/database/src/main/kotlin/no/iktdev/mediaprocessing/shared/database/stores/TaskStore.kt @@ -5,12 +5,12 @@ import no.iktdev.eventi.models.Task import no.iktdev.eventi.models.store.PersistedTask import no.iktdev.eventi.models.store.TaskStatus import no.iktdev.eventi.stores.TaskStore +import no.iktdev.mediaprocessing.shared.common.UtcNow import no.iktdev.mediaprocessing.shared.common.dto.PagedTasks import no.iktdev.mediaprocessing.shared.database.tables.TasksTable import no.iktdev.mediaprocessing.shared.database.withTransaction import org.jetbrains.exposed.sql.* import java.time.Duration -import java.time.LocalDateTime import java.util.* object TaskStore: TaskStore { @@ -59,7 +59,7 @@ object TaskStore: TaskStore { it[TasksTable.task] = taskName it[status] = TaskStatus.Pending it[data] = asData - it[persistedAt] = LocalDateTime.now() + it[persistedAt] = UtcNow() } } } @@ -160,7 +160,7 @@ object TaskStore: TaskStore { }) { it[claimed] = true it[claimedBy] = workerId - it[lastCheckIn] = LocalDateTime.now() + it[lastCheckIn] = UtcNow() } }.isSuccess } @@ -168,7 +168,7 @@ object TaskStore: TaskStore { override fun heartbeat(taskId: UUID) { withTransaction { TasksTable.update({ TasksTable.taskId eq taskId.toString() }) { - it[lastCheckIn] = LocalDateTime.now() + it[lastCheckIn] = UtcNow() } } } @@ -183,7 +183,7 @@ object TaskStore: TaskStore { } override fun releaseExpiredTasks(timeout: Duration) { - val now = LocalDateTime.now() + val now = UtcNow() val expirationTime = now.minus(timeout) withTransaction { TasksTable.update({ diff --git a/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/FFmpeg.kt b/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/FFmpeg.kt index f7238309..1e4cf130 100644 --- a/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/FFmpeg.kt +++ b/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/FFmpeg.kt @@ -7,9 +7,9 @@ import no.iktdev.exfl.using import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument import no.iktdev.mediaprocessing.ffmpeg.decoder.FfmpegDecodedProgress import no.iktdev.mediaprocessing.ffmpeg.decoder.FfmpegProgressDecoder +import no.iktdev.mediaprocessing.ffmpeg.util.UtcNow import java.io.File import java.io.FileOutputStream -import java.time.LocalDateTime import java.time.format.DateTimeFormatter open class FFmpeg(val executable: String, val logDir: File) { @@ -20,7 +20,7 @@ open class FFmpeg(val executable: String, val logDir: File) { private val outputCache = mutableListOf() //region Log File formatting - val currentDateTime = LocalDateTime.now() + val currentDateTime = UtcNow() val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd.HH.mm") val formattedDateTime = currentDateTime.format(formatter) //endregion diff --git a/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/util/Utils.kt b/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/util/Utils.kt new file mode 100644 index 00000000..0edb26de --- /dev/null +++ b/shared/ffmpeg/src/main/kotlin/no/iktdev/mediaprocessing/ffmpeg/util/Utils.kt @@ -0,0 +1,8 @@ +package no.iktdev.mediaprocessing.ffmpeg.util + +import java.time.Clock +import java.time.LocalDateTime + +fun UtcNow(): LocalDateTime { + return LocalDateTime.now(Clock.systemUTC()) +} \ No newline at end of file