all the jobs the manager knows and may manage. Jobs are defined lazy, so that the jobs map can contain jobs that themselves need the JobManager (allow cyclic dependencies)
If a job run was missing due to a server downtime, a job is started immediately after a restart if the next scheduled run is more than this duration in the future.
If a job run was missing due to a server downtime, a job is started immediately after a restart if the next scheduled run is more than this duration in the future. By default, this is set to 30 minutes for all job types, but it can be overridden in subclasses.
Future that is redeemed with true when all jobs are successfully scheduled.
Future that is redeemed with true when all jobs are successfully scheduled. If not all jobs are scheduled for some reason, the value will be false (job scheduling deactivated) or the future will be failed with an exception.
Can be overridden in subclasses if something has to be done before any job can be started, e.g.
Can be overridden in subclasses if something has to be done before any job can be started, e.g. checking that all caches are initialized completely. By default, just returns Future.sucessful.
Can be overridden in tests.
Can be overridden in tests.
Restarts a job for specified trigger id.
Restarts a job for specified trigger id. Part of (re-)starting a job is locking for that job and managing the lifecycle of the KeepLockActor. So the this method does the following: - Acquire and release the lock for the job - Trigger in case of success the job - Starting and stopping the KeepJobLockActor
JobType of the job to start
Trigger Id to restart
StartStatus, f.e. Started if job could be started or LockedStatus if job is already running.
Start a job
Start a job
JobType of the job to start
StartStatus, f.e. Started if job could be started or LockedStatus if job is already running
A JobManager is responsible for running jobs. It creates the infrastructure, checks locking etc. for job running