From 4131f03e42828c1679803570f501ee1de02bdfb5 Mon Sep 17 00:00:00 2001 From: Raymond Yang Date: Tue, 27 Jun 2023 23:27:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=B8=8AupdateTimer=E6=A8=A1=E7=B5=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ray650128/pcredive/Application.kt | 41 +----------------- .../ray650128/pcredive/plugins/UpdateTimer.kt | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 src/main/kotlin/com/ray650128/pcredive/plugins/UpdateTimer.kt diff --git a/src/main/kotlin/com/ray650128/pcredive/Application.kt b/src/main/kotlin/com/ray650128/pcredive/Application.kt index 39a04da..87597e8 100644 --- a/src/main/kotlin/com/ray650128/pcredive/Application.kt +++ b/src/main/kotlin/com/ray650128/pcredive/Application.kt @@ -2,17 +2,11 @@ package com.ray650128.pcredive import ch.qos.logback.classic.Level import ch.qos.logback.classic.LoggerContext -import com.ray650128.pcredive.database.model.MemberRecord -import com.ray650128.pcredive.database.model.Record -import com.ray650128.pcredive.database.service.MemberRecordService -import com.ray650128.pcredive.database.service.MemberService import io.ktor.server.application.* import com.ray650128.pcredive.plugins.* import org.slf4j.LoggerFactory -import java.util.* fun main(args: Array) { - startTimer() val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext val rootLogger = loggerContext.getLogger("org.mongodb.driver") rootLogger.level = Level.OFF @@ -21,42 +15,9 @@ fun main(args: Array) { @Suppress("unused") // application.conf references the main function. This annotation prevents the IDE from marking it as unused. fun Application.module() { + configureUpdateTimer() configureHTTP() configureSerialization() configureMemberRouting() configureMemberRecordRouting() -} - -private fun startTimer() { - val date = Date() - val timer = Timer() - timer.schedule(object : TimerTask() { - override fun run() { - val c = Calendar.getInstance() - val hour = c[Calendar.HOUR_OF_DAY] - val minute = c[Calendar.MINUTE] - val second = c[Calendar.SECOND] - val day = c[Calendar.DAY_OF_MONTH] - val lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH) - println("Time: $day, ${String.format("%2d:%2d:%2d", hour, minute, second)}") - if ((day in (lastDay - 5)..lastDay) && (hour == 5 && minute == 0 && second == 0)) { - val members = MemberService.findAll(false) - members.forEach { member -> - MemberRecordService.create( - MemberRecord( - memberId = member._id, - record1 = Record(""), - record1c = Record(""), - record2 = Record(""), - record2c = Record(""), - record3 = Record(""), - record3c = Record(""), - createdAt = System.currentTimeMillis(), - updatedAt = System.currentTimeMillis() - ) - ) - } - } - } - }, date, 1000L) } \ No newline at end of file diff --git a/src/main/kotlin/com/ray650128/pcredive/plugins/UpdateTimer.kt b/src/main/kotlin/com/ray650128/pcredive/plugins/UpdateTimer.kt new file mode 100644 index 0000000..adde535 --- /dev/null +++ b/src/main/kotlin/com/ray650128/pcredive/plugins/UpdateTimer.kt @@ -0,0 +1,42 @@ +package com.ray650128.pcredive.plugins + +import com.ray650128.pcredive.database.model.MemberRecord +import com.ray650128.pcredive.database.model.Record +import com.ray650128.pcredive.database.service.MemberRecordService +import com.ray650128.pcredive.database.service.MemberService +import io.ktor.server.application.* +import java.util.* + +fun Application.configureUpdateTimer() { + val date = Date() + val timer = Timer() + timer.schedule(object : TimerTask() { + override fun run() { + val c = Calendar.getInstance() + val hour = c[Calendar.HOUR_OF_DAY] + val minute = c[Calendar.MINUTE] + val second = c[Calendar.SECOND] + val day = c[Calendar.DAY_OF_MONTH] + val lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH) + println("Time: $day, ${String.format("%2d:%2d:%2d", hour, minute, second)}") + if ((day in (lastDay - 5)..lastDay) && (hour == 5 && minute == 0 && second == 0)) { + val members = MemberService.findAll(false) + members.forEach { member -> + MemberRecordService.create( + MemberRecord( + memberId = member._id, + record1 = Record(""), + record1c = Record(""), + record2 = Record(""), + record2c = Record(""), + record3 = Record(""), + record3c = Record(""), + createdAt = System.currentTimeMillis(), + updatedAt = System.currentTimeMillis() + ) + ) + } + } + } + }, date, 1000L) +}