diff options
| author | Joris | 2021-01-03 13:40:40 +0100 | 
|---|---|---|
| committer | Joris | 2021-01-03 13:54:20 +0100 | 
| commit | 11052951b74b9ad4b6a9412ae490086235f9154b (patch) | |
| tree | 64526ac926c1bf470ea113f6cac8a33158684e8d /server/src/Job/Daemon.hs | |
| parent | 371449b0e312a03162b78797b83dee9d81706669 (diff) | |
Rewrite in Rust
Diffstat (limited to 'server/src/Job/Daemon.hs')
| -rw-r--r-- | server/src/Job/Daemon.hs | 37 | 
1 files changed, 0 insertions, 37 deletions
diff --git a/server/src/Job/Daemon.hs b/server/src/Job/Daemon.hs deleted file mode 100644 index d8cd522..0000000 --- a/server/src/Job/Daemon.hs +++ /dev/null @@ -1,37 +0,0 @@ -module Job.Daemon -  ( runDaemons -  ) where - -import           Control.Concurrent (ThreadId, forkIO, threadDelay) -import           Control.Monad      (forever) -import           Data.Time.Clock    (UTCTime) - -import           Conf               (Conf) -import           Job.Frequency      (Frequency (..), microSeconds) -import           Job.Kind           (Kind (..)) -import           Job.Model          (actualizeLastCheck, actualizeLastExecution, -                                     getLastExecution) -import           Job.MonthlyPayment (monthlyPayment) -import           Job.WeeklyReport   (weeklyReport) -import qualified Model.Query        as Query -import           Util.Time          (belongToCurrentMonth, belongToCurrentWeek) - -runDaemons :: Conf -> IO () -runDaemons conf = do -  _ <- runDaemon MonthlyPayment EveryHour (fmap not . belongToCurrentMonth) monthlyPayment -  _ <- runDaemon WeeklyReport EveryHour (fmap not . belongToCurrentWeek) (weeklyReport conf) -  return () - -runDaemon :: Kind -> Frequency -> (UTCTime -> IO Bool) -> (Maybe UTCTime -> IO UTCTime) -> IO ThreadId -runDaemon kind frequency isLastExecutionTooOld runJob = -  forkIO . forever $ do -    mbLastExecution <- Query.run $ do -      actualizeLastCheck kind -      getLastExecution kind -    hasToRun <- case mbLastExecution of -      Just lastExecution -> isLastExecutionTooOld lastExecution -      Nothing            -> return True -    if hasToRun -      then runJob mbLastExecution >>= (Query.run . actualizeLastExecution kind) -      else return () -    threadDelay . microSeconds $ frequency  | 
