cron-0.6.1: Cron datatypes and Attoparsec parser

Copyright(c) Andrew Rademacher 2014
LicenseMIT
MaintainerAndrew Rademacher <andrewrademacher@gmail.com>
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

System.Cron.Schedule

Description

main :: IO ()
main = do
       ...
       tids <- execSchedule $ do
           addJob job1 "* * * * *"
           addJob job2 "0 * * * *"
       print tids
       ...

job1 :: IO ()
job1 = putStrLn "Job 1"

job2 :: IO ()
job2 = putStrLn "Job 2"

Synopsis

Documentation

data Job Source #

Scheduling Monad

Constructors

Job CronSchedule (IO ()) 

Instances

Show Job Source # 

Methods

showsPrec :: Int -> Job -> ShowS #

show :: Job -> String #

showList :: [Job] -> ShowS #

newtype ScheduleT m a Source #

Constructors

ScheduleT 

Fields

Instances

Monad m => MonadError ScheduleError (ScheduleT m) Source # 
Monad m => Monad (ScheduleT m) Source # 

Methods

(>>=) :: ScheduleT m a -> (a -> ScheduleT m b) -> ScheduleT m b #

(>>) :: ScheduleT m a -> ScheduleT m b -> ScheduleT m b #

return :: a -> ScheduleT m a #

fail :: String -> ScheduleT m a #

Functor m => Functor (ScheduleT m) Source # 

Methods

fmap :: (a -> b) -> ScheduleT m a -> ScheduleT m b #

(<$) :: a -> ScheduleT m b -> ScheduleT m a #

Monad m => Applicative (ScheduleT m) Source # 

Methods

pure :: a -> ScheduleT m a #

(<*>) :: ScheduleT m (a -> b) -> ScheduleT m a -> ScheduleT m b #

(*>) :: ScheduleT m a -> ScheduleT m b -> ScheduleT m b #

(<*) :: ScheduleT m a -> ScheduleT m b -> ScheduleT m a #

Monad m => MonadSchedule (ScheduleT m) Source # 

Methods

addJob :: IO () -> Text -> ScheduleT m () Source #

class MonadSchedule m where Source #

Minimal complete definition

addJob

Methods

addJob :: IO () -> Text -> m () Source #

Instances

Monad m => MonadSchedule (ScheduleT m) Source # 

Methods

addJob :: IO () -> Text -> ScheduleT m () Source #

execSchedule :: Schedule () -> IO [ThreadId] Source #

Schedule all of the jobs to run at appropriate intervals. Each job that is launched gets a scheduling thread to itself. Each time a scheduling thread launches a job, the job is forked onto a new thread. This means that if a job throws an excpetion in IO, its thread will be killed, but it will continue to be scheduled in the future.