Simple in-process scheduler
Project description
Classic Scheduler
Планировщик
Планировщик - это актор, который вызывает функции по расписанию.
Рассмотрим пример использования библиотеки:
def func():
print('Hello world!')
scheduler = Scheduler()
scheduler.with_delay(1, func)
scheduler.by_period(5, func)
scheduler.by_cron('* * * * *', func)
scheduler.run()
# Hello world!
# Hello world!
# Hello world!
# ...
Отмена вызова (удаление задачи)
Если расписание задач планируется динамически менять, например, удалить ранее созданную задачу, то при создании задачи в методах необходимо указать атрибут task_name. Пример:
scheduler = Scheduler()
scheduler.by_period(1, func, task_name='periodic task')
Тогда в дальнейшем вы можете отменить запланированные запуски задач через:
scheduler.cancel('periodic task')
Параметризация вызываемой функции
Планировщик может запускать и функции с аргументами. Аргументы передаются через атрибуты args и kwargs. Отдельно заметим, что вызываемые объекты так же могут быть акторами, как в примере ниже:
class SomeActor(Actor):
@Actor.method
def func(self, a, b):
print('a + b =', a + b)
some_actor = SomeActor()
some_actor.run()
scheduler = Scheduler()
scheduler.run()
scheduler.by_period(
2,
some_actor.func,
args=(2, 6),
task_name='some_actor_task',
)
# a + b = 8
# a + b = 8
# a + b = 8
# ...
Типы задач
После создания экземпляра планировщика нужно добавить в него задач. Планирование и выполнение задач начнется только после запуска метода run(). Отметим, что добавлять задачи в планировщик можно и после вызова метода run().
Планировщик поддерживает три типы задач:
Одноразовая отложенная задача
Создается через вызов метода планировщика with_delay. Задача будет выполнена ровно один раз. Ее вызов отложен на delay указанный либо в секундах в float либо в timedelta.
Переодическая задача
Создается через вызов метода планировщика by_period. Задача выполнится в первый раз, затем она будет выполняется через период periodic заданный либо в секундах в float либо в timedelta.
Задача по расписанию
Создается через вызов метода планировщика by_cron. Задача вызов который задается в формате CRON строкой.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file classic_scheduler-1.3.0.tar.gz.
File metadata
- Download URL: classic_scheduler-1.3.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8500b4e1ba5306d78b21bb6ba3d3ada46ad327fb1ed48eeee747cd36c7aa5162
|
|
| MD5 |
a5afbc92a18b77df779e502d7d50ba6a
|
|
| BLAKE2b-256 |
8492eb3738a07069d7ba442c8912f7536f5fe780ab43c8a6a76a608530f2f5b6
|
File details
Details for the file classic_scheduler-1.3.0-py3-none-any.whl.
File metadata
- Download URL: classic_scheduler-1.3.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bf069a1f74aeeae259ad94fbb4e8bd478ed59073859c691b43d6a8aa0323704
|
|
| MD5 |
81d03d68e2a580abbe085515638f72f2
|
|
| BLAKE2b-256 |
9ac8d034f15fd3ad9b6596f22ddd7f816c92f0e07076afe7fe0348d56910b339
|