Как отложить запуск функции на 10 секунд в django rest

Я хочу чтобы функция запускалась через 10 секунд после запуска проекта, так как при одновременном запуске с проектом она дублируется и все её запросы дублируются, хотя если на время закомментировать часть с запуском функции, а потом откомментировать то она работает нормально, поэтому и хочу сделать отладку в 10 секунд

apps.py:

from django.apps import AppConfig
import threading
import asyncio
from users.sheets_data import insert_to_postgres_old_clients

class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'users'

    def ready(self):
        print("запуск функции")
        # Запуск асинхронной задачи в отдельном потоке
        def start_async_task():
            stop_event = asyncio.Event()

            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
            task = loop.create_task(insert_to_postgres_old_clients(stop_event))

            try:
                loop.run_until_complete(task)
            except (KeyboardInterrupt, SystemExit):
                stop_event.set()
                loop.run_until_complete(task)

        thread = threading.Thread(target=start_async_task)
        thread.daemon = True  # Сделаем поток демоном, чтобы он не мешал завершению приложения
        thread.start()

Ответы (0 шт):