1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-04-30 23:50:03 +00:00

Use quantum core for update scheduling

Rather than requiring a traditional crontab install, the app now
leverages quantum-core (link below) to schedule the instance update/sync
task every 5 minutes. Some updates as a result:

  - The new job is scheduled at runtime in server.ex.
  - The update.exs script was refactored to be compiled along with the
    rest of the app as instances.ex.
  - Scheduler and Server modules were added for creating and executing
    the new update task
  - All shell scripts were removed, as they are no longer needed

https://github.com/quantum-elixir/quantum-core
This commit is contained in:
Ben Busby 2021-11-24 09:35:21 -07:00
parent d1c9212994
commit ff97d258f0
No known key found for this signature in database
GPG key ID: 339B7B7EB5333D14
10 changed files with 53 additions and 36 deletions

22
lib/farside/server.ex Normal file
View file

@ -0,0 +1,22 @@
defmodule Farside.Server do
use GenServer
import Crontab.CronExpression
def init(init_arg) do
{:ok, init_arg}
end
def start_link(arg) do
if System.get_env("FARSIDE_TEST") do
IO.puts("Skipping sync job setup...")
else
Farside.Scheduler.new_job()
|> Quantum.Job.set_name(:sync)
|> Quantum.Job.set_schedule(~e[*/5 * * * *])
|> Quantum.Job.set_task(fn -> Farside.Instances.sync end)
|> Farside.Scheduler.add_job()
end
GenServer.start_link(__MODULE__, arg)
end
end