from __future__ import annotations

import signal
import time

from app import create_app
from app.services.worker_service import WorkerService

running = True


def stop(_signum, _frame):
    global running
    running = False


signal.signal(signal.SIGTERM, stop)
signal.signal(signal.SIGINT, stop)
app = create_app()

if __name__ == '__main__':
    with app.app_context():
        while running:
            WorkerService().run()
            for _ in range(60):
                if not running:
                    break
                time.sleep(1)
