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:
parent
d1c9212994
commit
ff97d258f0
10 changed files with 53 additions and 36 deletions
12
README.md
12
README.md
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue