1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-04-25 13:10:02 +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

View file

@ -26,11 +26,11 @@ bottlenecks and rate-limiting.
## How It Works
The app runs in a container that periodically (default every 5 minutes) queries
all instances for services defined in [services.json](services.json). For each
instance, as long as the instance takes <5 seconds to respond and returns a 200
status code, the instance is added to a list of available instances for that
particular service. If not, it is discarded until the next update period.
The app runs with an internally scheduled cron task that queries all instances
for services defined in [services.json](services.json) every 5 minutes. For
each instance, as long as the instance takes <5 seconds to respond and returns
a 200 status code, the instance is added to a list of available instances for
that particular service. If not, it is discarded until the next update period.
Farside's routing is very minimal, with only the following routes:
@ -69,7 +69,7 @@ request per second per IP.
- Install [elixir](https://elixir-lang.org/install.html)
- Start redis: `redis-server /usr/local/etc/redis.conf`
- Install dependencies: `mix deps.get`
- Initialize redis contents: `mix run update.exs`
- Initialize redis contents: `mix run -e Farside.Instances.sync`
- Run Farside: `mix run --no-halt`
- Uses localhost:4001