Код web-приложений на Django и многих других фреймворках выполняется только в ответ на http-запрос от пользователя и завершается сразу после того, как вернёт ответ. Если код не вернёт ответ в течении нескольких секунд, он будет принудительно завершён сервером. Поэтому даже запустить ваш код с таймером нормально не получится.
Самый простой способ выполнять фоновые задачи в Django - написать собственную
management command и вызывать её
cron'ом. Более продвинутый и функциональный способ - это использовать какой-нибудь механизм асинхронного выполнения задач, типа
Celery.