diff --git a/README.md b/README.md index 9983cbd..1cb5c24 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This file is auto-generate by a github hook please modify r.md if you don't want --> ![Build Status](https://github.com///github.com/SOFTNETWORK-APP/generic-scheduler-api/workflows/Build/badge.svg) [![Scala Steward badge](https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://scala-steward.org) -[![codecov](https://codecov.io/gh///github.com/SOFTNETWORK-APP/generic-scheduler-api/branch/main/graph/badge.svg)](https://codecov.io/gh///github.com/SOFTNETWORK-APP/generic-scheduler-api/) +[![codecov](https://codecov.io/gh///github.com/SOFTNETWORK-APP/generic-scheduler-api/branch/feature%2Fquality/graph/badge.svg)](https://codecov.io/gh///github.com/SOFTNETWORK-APP/generic-scheduler-api/) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/122252a6bdfb41c3af16d31f8cefaecc)](https://www.codacy.com/gh/SOFTNETWORK-APP/generic-scheduler-api/dashboard?utm_source=github.com&utm_medium=referral&utm_content=SOFTNETWORK-APP/generic-scheduler-api&utm_campaign=Badge_Grade) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) diff --git a/build.sbt b/build.sbt index bd293ff..decf344 100644 --- a/build.sbt +++ b/build.sbt @@ -31,7 +31,7 @@ ThisBuild / organization := "app.softnetwork" name := "scheduler" -ThisBuild / version := "0.1-SNAPSHOT" +ThisBuild / version := "0.1.0" ThisBuild / scalaVersion := "2.12.15" diff --git a/common/src/main/resources/softnetwork-scheduler.conf b/common/src/main/resources/softnetwork-scheduler.conf index 4601167..aa67d40 100644 --- a/common/src/main/resources/softnetwork-scheduler.conf +++ b/common/src/main/resources/softnetwork-scheduler.conf @@ -2,7 +2,7 @@ softnetwork{ scheduler { # id = "*" akka-node-role = scheduler - reset-cron-tabs { + reset-scheduler { initial-delay = 60 delay = 60 } diff --git a/common/src/main/scala/app/softnetwork/scheduler/config/SchedulerSettings.scala b/common/src/main/scala/app/softnetwork/scheduler/config/SchedulerSettings.scala index 7388097..4714950 100644 --- a/common/src/main/scala/app/softnetwork/scheduler/config/SchedulerSettings.scala +++ b/common/src/main/scala/app/softnetwork/scheduler/config/SchedulerSettings.scala @@ -23,11 +23,11 @@ object SchedulerSettings extends StrictLogging { case class SchedulerConfig( id: Option[String], - resetCronTabs: ResetCronTabs, + resetScheduler: ResetScheduler, eventStreams: SchedulerEventStreams, akkaNodeRole: String ) -case class ResetCronTabs(initialDelay: Int, delay: Int) +case class ResetScheduler(initialDelay: Int, delay: Int) case class SchedulerEventStreams(entityToSchedulerTag: String) diff --git a/core/src/main/scala/app/softnetwork/scheduler/handlers/SchedulerHandler.scala b/core/src/main/scala/app/softnetwork/scheduler/handlers/SchedulerHandler.scala index c073608..e4e446f 100644 --- a/core/src/main/scala/app/softnetwork/scheduler/handlers/SchedulerHandler.scala +++ b/core/src/main/scala/app/softnetwork/scheduler/handlers/SchedulerHandler.scala @@ -36,7 +36,7 @@ trait SchedulerDao extends Completion { implicit val ec: ExecutionContextExecutor = system.executionContext resetScheduler() await { _ => system.scheduler.scheduleOnce( - SchedulerSettings.SchedulerConfig.resetCronTabs.initialDelay.seconds, + SchedulerSettings.SchedulerConfig.resetScheduler.initialDelay.seconds, () => resetCronTabsAndSchedules(resetScheduler = true) ) } diff --git a/core/src/main/scala/app/softnetwork/scheduler/launch/SchedulerGuardian.scala b/core/src/main/scala/app/softnetwork/scheduler/launch/SchedulerGuardian.scala index c457bc4..220630b 100644 --- a/core/src/main/scala/app/softnetwork/scheduler/launch/SchedulerGuardian.scala +++ b/core/src/main/scala/app/softnetwork/scheduler/launch/SchedulerGuardian.scala @@ -2,6 +2,7 @@ package app.softnetwork.scheduler.launch import akka.actor.typed.ActorSystem import app.softnetwork.persistence.launch.{PersistenceGuardian, PersistentEntity} +import app.softnetwork.persistence.launch.PersistenceGuardian._ import app.softnetwork.persistence.query.{EventProcessorStream, SchemaProvider} import app.softnetwork.scheduler.handlers.SchedulerDao import app.softnetwork.scheduler.persistence.query.{ @@ -16,8 +17,6 @@ import scala.util.{Failure, Success, Try} trait SchedulerGuardian extends PersistenceGuardian with StrictLogging { _: SchemaProvider => - import app.softnetwork.persistence.launch.PersistenceGuardian._ - def schedulerEntities: ActorSystem[_] => Seq[PersistentEntity[_, _, _, _]] = _ => Seq( SchedulerBehavior diff --git a/core/src/main/scala/app/softnetwork/scheduler/persistence/query/package.scala b/core/src/main/scala/app/softnetwork/scheduler/persistence/query/package.scala index fe6843b..665fcd9 100644 --- a/core/src/main/scala/app/softnetwork/scheduler/persistence/query/package.scala +++ b/core/src/main/scala/app/softnetwork/scheduler/persistence/query/package.scala @@ -7,6 +7,8 @@ import app.softnetwork.persistence._ import app.softnetwork.persistence.typed.scaladsl.EntityPattern import app.softnetwork.persistence.query.{EventProcessorStream, JournalProvider} import app.softnetwork.persistence.message.{Command, CommandResult} +import app.softnetwork.scheduler.config.SchedulerSettings +import app.softnetwork.scheduler.handlers.SchedulerDao import app.softnetwork.scheduler.message._ import org.softnetwork.akka.message.SchedulerEvents._ @@ -16,9 +18,6 @@ import scala.concurrent.Future package query { - import app.softnetwork.scheduler.config.SchedulerSettings - import app.softnetwork.scheduler.handlers.SchedulerDao - /** Created by smanciot on 04/09/2020. */ trait Scheduler2EntityProcessorStream[C <: Command, R <: CommandResult] diff --git a/core/src/main/scala/app/softnetwork/scheduler/persistence/typed/SchedulerBehavior.scala b/core/src/main/scala/app/softnetwork/scheduler/persistence/typed/SchedulerBehavior.scala index 013ea74..ed36ad2 100644 --- a/core/src/main/scala/app/softnetwork/scheduler/persistence/typed/SchedulerBehavior.scala +++ b/core/src/main/scala/app/softnetwork/scheduler/persistence/typed/SchedulerBehavior.scala @@ -80,7 +80,7 @@ private[scheduler] trait SchedulerBehavior implicit val system: ActorSystem[_] = context.system implicit val ec: ExecutionContextExecutor = system.executionContext system.scheduler.scheduleOnce( - SchedulerSettings.SchedulerConfig.resetCronTabs.delay.seconds, + SchedulerSettings.SchedulerConfig.resetScheduler.delay.seconds, () => schedulerDao.resetCronTabsAndSchedules(resetScheduler = false) ) Effect @@ -96,7 +96,7 @@ private[scheduler] trait SchedulerBehavior if ( scheduler.lastCronTabsAndSchedulesReseted.isEmpty || ((now().getTime - scheduler.getLastCronTabsAndSchedulesReseted.getTime) > - SchedulerSettings.SchedulerConfig.resetCronTabs.delay * 1000) + SchedulerSettings.SchedulerConfig.resetScheduler.delay * 1000) ) { scheduler.cronTabs.foreach { cronTab => context.self ! AddCronTab(cronTab) @@ -117,7 +117,7 @@ private[scheduler] trait SchedulerBehavior case Some(scheduler) if scheduler.lastCronTabsAndSchedulesReseted.isEmpty || ((now().getTime - scheduler.getLastCronTabsAndSchedulesReseted.getTime) > - SchedulerSettings.SchedulerConfig.resetCronTabs.delay * 1000) => + SchedulerSettings.SchedulerConfig.resetScheduler.delay * 1000) => trigerResetCronTabsAndSchedules(scheduler, switch = false) case _ => Effect.none.thenRun(_ => CronTabsAndSchedulesNotReseted ~> replyTo) } diff --git a/testkit/src/test/resources/reference.conf b/testkit/src/test/resources/reference.conf index 75d0634..866e59c 100644 --- a/testkit/src/test/resources/reference.conf +++ b/testkit/src/test/resources/reference.conf @@ -1,6 +1,10 @@ softnetwork{ scheduler { id = "my-scheduler" + reset-scheduler { + initial-delay = 0 + delay = 1 + } event-streams { entity-to-scheduler-tag = "entity-to-scheduler-"${softnetwork.scheduler.id} }