| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
IHP.Job.Runner
Synopsis
- runJobWorkers :: [JobWorker] -> Script
- dedicatedProcessMainLoop :: (?modelContext :: ModelContext, ?context :: FrameworkConfig) => [JobWorker] -> IO ()
- devServerMainLoop :: (?modelContext :: ModelContext) => FrameworkConfig -> PGListener -> [JobWorker] -> IO ()
- installSignalHandlers :: IO (IO ())
- stopExitHandler :: JobWorkerArgs -> IO a -> IO a
- worker :: (job ~ GetModelByTableName (GetTableName job), FromRowHasql job, Show (PrimaryKey (GetTableName job)), KnownSymbol (GetTableName job), HasField "id" job (Id' (GetTableName job)), PrimaryKey (GetTableName job) ~ UUID, HasField "runAt" job UTCTime, HasField "attemptsCount" job Int, Job job, Show job, Table job) => JobWorker
- jobWorkerFetchAndRunLoop :: (job ~ GetModelByTableName (GetTableName job), FromRowHasql job, Show (PrimaryKey (GetTableName job)), KnownSymbol (GetTableName job), HasField "id" job (Id' (GetTableName job)), PrimaryKey (GetTableName job) ~ UUID, HasField "runAt" job UTCTime, HasField "attemptsCount" job Int, Job job, Show job, Table job) => JobWorkerArgs -> ResourceT IO JobWorkerProcess
Documentation
runJobWorkers :: [JobWorker] -> Script Source #
Used by the RunJobs binary
dedicatedProcessMainLoop :: (?modelContext :: ModelContext, ?context :: FrameworkConfig) => [JobWorker] -> IO () Source #
This job worker main loop is used when the job workers are running as part of their own binary
In dev mode the IHP dev server is using the devServerMainLoop instead. We have two main loops
as the stop handling works a different in those cases.
devServerMainLoop :: (?modelContext :: ModelContext) => FrameworkConfig -> PGListener -> [JobWorker] -> IO () Source #
installSignalHandlers :: IO (IO ()) Source #
Installs signals handlers and returns an IO action that blocks until the next sigINT or sigTERM is sent
stopExitHandler :: JobWorkerArgs -> IO a -> IO a Source #
worker :: (job ~ GetModelByTableName (GetTableName job), FromRowHasql job, Show (PrimaryKey (GetTableName job)), KnownSymbol (GetTableName job), HasField "id" job (Id' (GetTableName job)), PrimaryKey (GetTableName job) ~ UUID, HasField "runAt" job UTCTime, HasField "attemptsCount" job Int, Job job, Show job, Table job) => JobWorker Source #
jobWorkerFetchAndRunLoop :: (job ~ GetModelByTableName (GetTableName job), FromRowHasql job, Show (PrimaryKey (GetTableName job)), KnownSymbol (GetTableName job), HasField "id" job (Id' (GetTableName job)), PrimaryKey (GetTableName job) ~ UUID, HasField "runAt" job UTCTime, HasField "attemptsCount" job Int, Job job, Show job, Table job) => JobWorkerArgs -> ResourceT IO JobWorkerProcess Source #