Skip to main content

The scheduler that nobody wants but every application needs.

Project description

Asyncz

Asyncz

🚀 The scheduler that simply works. 🚀

Test Suite Package version Supported Python versions


Documentation: https://asyncz.tarsild.io 📚

Source Code: https://github.com/tarsil/asyncz


Asyncz is a scheduler for any ASGI application that needs to have those complicated scheduled operations with the best of what pydantic can offer.

Motivation

Nowadays using async frameworks with python is somewhat common and becoming even more mainstream. A lot of applications usually need a complex stack of technologies to fullfil their needs and directly or indirectly, a scheduler.

There are great frameworks out there that do the task extremely well, the best example is APScheduler, which is where Asyncz came from.

To be even more honest, Asyncz is a revamp of APScheduler. Without the APScheduler there is no Asyncz, so much that even the APScheduler tests are used within asyncz. That is how great APScheduler is!

So what was the reason why recreating another similar version of APScheduler? Well, it is not entirely the same thing. Asyncz was designed to work only with ASGI and AsyncIO as well as integrating pydantic and bring the modern python into the table.

APScheduler is widely used by millions of python developers and Asyncz does not aim to replace it, instead is a more focused and optimised solution for async and ASGI frameworks out there.

See the vendors for more details.

Logging

We all struggle with the logging and the configurations and with that in mind Asyncz comes with natice support for loguru.

This will make the logging a lot easier to understand and clear to read.

Async and ASGI

What does this mean? Well, Asyncz does not need to run inside any specific framework, actually you can use it completely indepent from any framework as well as inside ASGI frameworks such as Esmerald, FastAPI, Starlette, Starlite, Quart... You can pick one and go for it.

Asyncz comes with special support to Esmerald for the simple reason that the author is the same but it can be added more support. If you are interested in adding support to your favourite frameworks then see the contributing section.

Concepts

Like APScheduler, Asyncz also brings four kinds of components:

Requirements

  • Python 3.7+

Asyncz wouldn't be possible without two giants:

Installation

$ pip install asyncz

The right decisions

How do you know if you are choosing the right scheduler, triggers, stores and executors?

Well, Asyncz is intentionally designed for specific systems and already helps you out with some of those questions.

Sometimes having a lot of options makes the decision making very hard and Asyncz is intentionally designed and driven to simplify and for specific use cases but is not limited to those. In every section you have the option of uilding your own stores, executors, triggers and schedulers.

Configuring the scheduler

Due its simplificy, Asyncz provides some ways of configuring the scheduler for you.

First way:

from asyncz.schedulers.asyncio import AsyncIOScheduler

scheduler = AsyncIOScheduler()

Second way:

from asyncz.schedulers import AsyncIOScheduler

scheduler = AsyncIOScheduler()

Initialize the rest of the application after the scheduler initialisation. More details can be found with more thorough explanations.

This is in simple terms and in a nutshell how to start with Asyncz quickly. For more information, details and examples how to leverage Asyncz simply navigate through the documentation and have fun 😁🎉.

ASGI support

Asyncz currently supports the Esmerald framework and brings some batteries that are currently used by the framework and leveraging Asyncz.

If you wish to have support to any other framework such as FastAPI, Starlite, Starlette or literally any other, check the contributing section and see how you can do it.

Sponsors

Currently there are no sponsors of Asyncz but you can financially help and support the author though GitHub sponsors and become a Special one or a Legend.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asyncz-0.4.0.tar.gz (38.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncz-0.4.0-py3-none-any.whl (55.4 kB view details)

Uploaded Python 3

File details

Details for the file asyncz-0.4.0.tar.gz.

File metadata

  • Download URL: asyncz-0.4.0.tar.gz
  • Upload date:
  • Size: 38.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for asyncz-0.4.0.tar.gz
Algorithm Hash digest
SHA256 452bcc51352cd6582187363818d2dcdec999053837916a7aead25673430f0566
MD5 be68e9226f4cff1c46fbcff3daf490f2
BLAKE2b-256 6e93fe8f86e968b0462a0fe0d52ed5c778bd4b50e8f256f632b4c88ef59625e2

See more details on using hashes here.

File details

Details for the file asyncz-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: asyncz-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 55.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for asyncz-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ab8e040a3ec07779f34df0005bb6af10c5b371db843a42aeabb87f17f1f19d1
MD5 767a550e2ac0b3b5f05957b221498fbd
BLAKE2b-256 98aec6928dfc1638b9effbb496f49d8bedb631278abf1a3a2fcc3e3a9dc3eedc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page