← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 15: Простий scheduler у процесі

Технологія: Python

Номер лабораторної: 15 · Рівень: middle

Тема: Планування періодичних задач

Повний опис / сценарій лабораторної:

Meta: навчитися реалізувати базовий планувальник у Python без зовнішніх сервісів.



Krok 1. Створити файл src/app/sched15.py.

Komandi: cd ~/python_lab1/src; touch app/sched15.py



Krok 2. Додати просту функцію задачі.

Komanda: printf "import time
from datetime import datetime

def job():
    print(f"job run at {datetime.now().isoformat()}")

if __name__ == "__main__":
    while True:
        job()
        time.sleep(5)
" > app/sched15.py



Krok 3. Запустити скрипт і спостерігати кілька викликів.

Komanda: export PYTHONPATH=$(pwd); python app/sched15.py



Krok 4. Додати умовне завершення після кількох запусків.

Poyasnennya: лічильник iterations, після трьох викликів вихід з циклу.



Krok 5. Винести логіку планувальника у окрему функцію run_scheduler.



Krok 6. Додати можливість різних інтервалів для різних задач у вигляді списку конфігів.

Poyasnennya: зберігай останній час запуску і порівнюй з поточним.



Krok 7. Занотувати обмеження такого підходу в порівнянні з cron або спеціалізованими системами.



Krok 8. Продумати як зупиняти scheduler через сигнал або прапорець.



Krok 9. Зробити невеликий лог виконання у файл через logging.



Krok 10. Mini zvit.

Zavdannya: опиши коли внутрішній scheduler підходить, а коли краще покластися на зовнішні інструменти.