Как отложить запуск функции на 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()