Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CHORE] Current state vs Future state #374

Open
christopherpickering opened this issue Apr 28, 2023 · 1 comment
Open

[CHORE] Current state vs Future state #374

christopherpickering opened this issue Apr 28, 2023 · 1 comment
Labels
💪 chore Dev chore

Comments

@christopherpickering
Copy link
Member

christopherpickering commented Apr 28, 2023

Current State

Atlas hub is a 3 part tool:

  1. scheduler (flask app api) runs on a single gunicorn process using apscheduler
  2. runner (flask app api) runs on a many cpu as are avialable
  3. web (flask app) runs a few gunicorn processes

This system works remarkably well. The three apps use the same database model and connect to the same db for logging.

Drawbacks

  • three apps to manage
  • was easy to build and maintain for a small scheduler but more difficult and code heavy than other options

Future State

  1. Flask API + Remix web app
  2. Celery job scheduler

Advantages

  • two apps to manage
  • Remix frontend makes it easier to make a more responsive UI
  • No need to limit a scheduler app to a single process
  • Can be implemented on multiple servers
  • Celery has a more promising future than apscheduler
@christopherpickering
Copy link
Member Author

Converting to celery from apscheduler is nearly a 1:1 convert with different imports.

https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html
https://flask.palletsprojects.com/en/2.3.x/patterns/celery/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💪 chore Dev chore
Projects
None yet
Development

No branches or pull requests

1 participant