Show HN: Rocketry – Modern scheduler to power your Python projects

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Scout Monitoring - Free Django app performance insights with Scout Monitoring
Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.
www.scoutapm.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
  • rocketry

    Modern scheduling library for Python

  • Thanks a lot, nice to hear!

    The system knows which task ran and when by extedning logging (from standard library). There is a logger called "rocketry.task" that should have a handler which can be read as well: redbird.logging.RepoHandler. An in-memory logger is created if nothing is specified. This handler abstracts simple read and write to a data store which can be an SQL database, in-memory Python list, MongoDB or CSV file.

    Seems I forgot to implement a method mentioned in the docs but here's an example to specify a task log repo: https://github.com/Miksus/rocketry/issues/108#issuecomment-1...

    The latest success time, starting time etc. are also stored in the tasks themselves and there is some optimization (which can be turned off) to reduce the reads in some cases. In the start-up these attributes are set in each task (if logs found).

  • red-bird

    Repository Patterns for Python

  • There is a repository mechanism to store the logs. The task logger is simply an extension of logging library. Seems my docs are slightly off on setting up the CSV repo but you can just add a RepoHandler (from redbird) to the logger called rocketry.task. At the moment there are MemoryRepo, CsvFileRepo, SQLRepo and MongoRepo.

    You can find more finer details of the repo mechanics in Red Bird's docs: https://red-bird.readthedocs.io/.

    And there are methods in the session to shut down or restart the scheduler in various ways. There is also a shut condition to end the scheduling when a condition is reached.

  • Scout Monitoring

    Free Django app performance insights with Scout Monitoring. Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.

    Scout Monitoring logo
  • rocketry-with-fastapi

    Example of how to create a scheduler with an API

  • If you want an API (or UI), just clone this and modify it as you need: https://github.com/Miksus/rocketry-with-fastapi. I also wrote an article to Medium how it works with FastAPI: https://itnext.io/scheduler-with-an-api-rocketry-fastapi-a0f...

    Rocketry plays quite nicely with FastAPI.

  • Python Fire

    Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

  • Fire can basically do the first step (object -> CLI):

    https://github.com/google/python-fire

    Gooey can do (CLI -> GUI):

    https://github.com/chriskiehl/Gooey

  • Gooey

    Turn (almost) any Python command line program into a full GUI application with one line

  • Fire can basically do the first step (object -> CLI):

    https://github.com/google/python-fire

    Gooey can do (CLI -> GUI):

    https://github.com/chriskiehl/Gooey

  • fcron

    fcron is an advanced cron for Linux/Unix systems

  • Does this support multiple time zones simultaneously? We have clients that are in different time zones, and (for example) they all want weekly summary emails every Monday morning at 6am, but in their own timezone. So California users get theirs at 6am US/Pacific, New York users get theirs at 6am US/Eastern, and we want to be able to handle this without having to worry about updating crontabs the night of a daylight savings change.

    For this reason, we are using fcron[0] instead of regular cron, which allows you to specify the timezone at the start of each crontab line. If this tool supports that sort scenario, it might be worth switching.

    [0] https://github.com/yo8192/fcron

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • ShyySH: a TUI connection manager for SSH

    3 projects | /r/Python | 17 Nov 2022
  • Github Sponsor Sebastián Ramírez Python programmer

    2 projects | dev.to | 5 May 2024
  • click-web: Serve click scripts over the web (Python)

    2 projects | news.ycombinator.com | 13 Dec 2023
  • Gooey: Turn almost any Python command line program into a full GUI application

    14 projects | news.ycombinator.com | 9 Dec 2023
  • Things I've learned about building CLI tools in Python

    16 projects | news.ycombinator.com | 24 Oct 2023