Khafra.Scheduler (khafra_search v0.2.1)
Defines a quantum Scheduler.
When used, the quantum scheduler expects the :otp_app
as option.
The :otp_app
should point to an OTP application that has
the quantum runner configuration. For example, the quantum scheduler:
defmodule Khafra.Scheduler do
use Quantum.Scheduler, otp_app: khafra_search
end
Could be configured with:
config khafra_search, Khafra.Scheduler,
jobs: [
{"@daily", {Backup, :backup, []}},
]
Configuration:
:timeout
- Sometimes, you may come across GenServer timeout errors esp. when you have too many jobs or high load. The default GenServer.call timeout is 5000.:jobs
- list of cron jobs to execute:global
- When you have a cluster of nodes, you may not want same jobs to be generated on every single node, e.g. jobs involving db changes.In this case, you may choose to run Quantum as a global process, thus preventing same job being run multiple times because of it being generated on multiple nodes. With the following configuration, Quantum will be run as a globally unique process across the cluster.
:schedule
- Default schedule of new Job:run_strategy
- Default Run Strategy of new Job:overlap
- Default overlap of new Job,:timezone
- Default timezone of new Job
Link to this section Summary
Functions
Callback implementation for Quantum.Scheduler.activate_job/2
.
Callback implementation for Quantum.Scheduler.add_job/2
.
Callback implementation for Quantum.Scheduler.config/1
.
Callback implementation for Quantum.Scheduler.deactivate_job/2
.
Callback implementation for Quantum.Scheduler.delete_all_jobs/1
.
Callback implementation for Quantum.Scheduler.delete_job/2
.
Callback implementation for Quantum.Scheduler.find_job/2
.
Callback implementation for Quantum.Scheduler.jobs/1
.
Callback implementation for Quantum.Scheduler.new_job/1
.
Callback implementation for Quantum.Scheduler.start_link/1
.
Callback implementation for Quantum.Scheduler.stop/2
.
Link to this section Functions
activate_job(server \\ __job_broadcaster__(), name)
Callback implementation for Quantum.Scheduler.activate_job/2
.
add_job(server \\ __job_broadcaster__(), job)
Callback implementation for Quantum.Scheduler.add_job/2
.
config(custom \\ [])
Callback implementation for Quantum.Scheduler.config/1
.
deactivate_job(server \\ __job_broadcaster__(), name)
Callback implementation for Quantum.Scheduler.deactivate_job/2
.
delete_all_jobs(server \\ __job_broadcaster__())
Callback implementation for Quantum.Scheduler.delete_all_jobs/1
.
delete_job(server \\ __job_broadcaster__(), name)
Callback implementation for Quantum.Scheduler.delete_job/2
.
find_job(server \\ __job_broadcaster__(), name)
Callback implementation for Quantum.Scheduler.find_job/2
.
jobs(server \\ __job_broadcaster__())
Callback implementation for Quantum.Scheduler.jobs/1
.
new_job(config \\ config())
Callback implementation for Quantum.Scheduler.new_job/1
.
start_link(opts \\ [name: __MODULE__])
Callback implementation for Quantum.Scheduler.start_link/1
.
stop(server \\ __MODULE__, timeout \\ 5000)
Callback implementation for Quantum.Scheduler.stop/2
.