2828 <li><a href="#setup-user-auth">Setup user auth</a></li>
2929 <li><a href="#local-development-with-poetry">Local development with poetry</a></li>
3030 <li><a href="#import-xlsx-files-with-polars-and-calamine">Import xlsx files with polars and calamine</a></li>
31+ <li><a href="#worker-aware-async-scheduler">Schedule jobs</a></li>
3132 </ul>
3233 </li>
3334 <li><a href="#acknowledgments">Acknowledgments</a></li>
@@ -142,6 +143,15 @@ In `pl.read_excel()` “calamine” engine can be used for reading all major typ
142143
143144<p align =" right " >(<a href =" #readme-top " >back to top</a >)</p >
144145
146+ ### Worker aware async scheduler :clock1 :
147+ The project uses the APScheduler library to schedule tasks in the background.
148+ The APScheduler library is a powerful and flexible in-process task scheduler with Cron-like capabilities.
149+ It allows you to schedule jobs to run at specific times or intervals, and it supports multiple job stores, triggers, and executors.
150+ The library is designed to be easy to use and highly configurable, making it suitable for a wide range of use cases.
151+ It was added to project in version 4.0.0a5 with Redis as event broker and SQLAlchemy as data store.
152+
153+ <p align =" right " >(<a href =" #readme-top " >back to top</a >)</p >
154+
145155## Acknowledgments
146156Use this space to list resources you find helpful and would like to give credit to.
147157I've included a few of my favorites to kick things off!
@@ -155,6 +165,7 @@ I've included a few of my favorites to kick things off!
155165* [ Inline Snapshots - pytest plugin for inline snapshots] ( )
156166* [ Connection pool for asyncpg] ( https://magicstack.github.io/asyncpg/current/usage.html#connection-pools )
157167* [ Granian - A Rust HTTP server for Python applications] ( https://github.com/emmett-framework/granian )
168+ * [ APScheduler - In-process task scheduler with Cron-like capabilities] ( https://apscheduler.readthedocs.io/en/master/ )
158169
159170<p align =" right " >(<a href =" #readme-top " >back to top</a >)</p >
160171
@@ -196,21 +207,21 @@ I've included a few of my favorites to kick things off!
196207[ linkedin-shield ] : https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
197208[ linkedin-url ] : https://www.linkedin.com/in/python-has-powers/
198209
199- [ fastapi.tiangolo.com ] : https://img.shields.io/badge/FastAPI-0.112.1 -009485?style=for-the-badge&logo=fastapi&logoColor=white
210+ [ fastapi.tiangolo.com ] : https://img.shields.io/badge/FastAPI-0.115.2 -009485?style=for-the-badge&logo=fastapi&logoColor=white
200211[ fastapi-url ] : https://fastapi.tiangolo.com/
201- [ pydantic.com ] : https://img.shields.io/badge/Pydantic-2.8 .2-e92063?style=for-the-badge&logo=pydantic&logoColor=white
212+ [ pydantic.com ] : https://img.shields.io/badge/Pydantic-2.9 .2-e92063?style=for-the-badge&logo=pydantic&logoColor=white
202213[ pydantic-url ] : https://docs.pydantic.dev/latest/
203- [ sqlalchemy.org ] : https://img.shields.io/badge/SQLAlchemy-2.0.32 -bb0000?color=bb0000&style=for-the-badge
214+ [ sqlalchemy.org ] : https://img.shields.io/badge/SQLAlchemy-2.0.36 -bb0000?color=bb0000&style=for-the-badge
204215[ sqlalchemy-url ] : https://docs.sqlalchemy.org/en/20/
205- [ uvicorn.org ] : https://img.shields.io/badge/Uvicorn-0.30.6 -2094f3?style=for-the-badge&logo=uvicorn&logoColor=white
216+ [ uvicorn.org ] : https://img.shields.io/badge/Uvicorn-0.32.0 -2094f3?style=for-the-badge&logo=uvicorn&logoColor=white
206217[ uvicorn-url ] : https://www.uvicorn.org/
207218[ asyncpg.github.io ] : https://img.shields.io/badge/asyncpg-0.29.0-2e6fce?style=for-the-badge&logo=postgresql&logoColor=white
208219[ asyncpg-url ] : https://magicstack.github.io/asyncpg/current/
209- [ pytest.org ] : https://img.shields.io/badge/pytest-8.3.2 -fff?style=for-the-badge&logo=pytest&logoColor=white
220+ [ pytest.org ] : https://img.shields.io/badge/pytest-8.3.3 -fff?style=for-the-badge&logo=pytest&logoColor=white
210221[ pytest-url ] : https://docs.pytest.org/en/6.2.x/
211- [ alembic.sqlalchemy.org ] : https://img.shields.io/badge/alembic-1.13.2 -6BA81E?style=for-the-badge&logo=alembic&logoColor=white
222+ [ alembic.sqlalchemy.org ] : https://img.shields.io/badge/alembic-1.13.3 -6BA81E?style=for-the-badge&logo=alembic&logoColor=white
212223[ alembic-url ] : https://alembic.sqlalchemy.org/en/latest/
213- [ rich.readthedocs.io ] : https://img.shields.io/badge/rich-13.7.1 -009485?style=for-the-badge&logo=rich&logoColor=white
224+ [ rich.readthedocs.io ] : https://img.shields.io/badge/rich-13.9.2 -009485?style=for-the-badge&logo=rich&logoColor=white
214225[ rich-url ] : https://rich.readthedocs.io/en/latest/
215- [ redis.io ] : https://img.shields.io/badge/redis-5.0.8 -dc382d?style=for-the-badge&logo=redis&logoColor=white
226+ [ redis.io ] : https://img.shields.io/badge/redis-5.1.1 -dc382d?style=for-the-badge&logo=redis&logoColor=white
216227[ redis-url ] : https://redis.io/
0 commit comments