Запуск функции при выходе из сервера Django
У меня есть Django Server, который запускает некоторые фоновые задания при запуске. Код предоставлен ниже-
class ApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api'
def ready(self):
run_once = os.environ.get('CMDLINERUNNER_RUN_ONCE')
if run_once is not None:
return
os.environ['CMDLINERUNNER_RUN_ONCE'] = 'True'
from . import bgJobs
stop_run_continuously = bgJobs.run_continuously()
а фон Job выглядит примерно так
def run_threaded(job_func,*args,**kwargs):
job_thread = threading.Thread(target=job_func,args=args,kwargs=kwargs)
job_thread.start()
def run_continuously(interval=1):
cease_continuous_run = threading.Event()
class ScheduleThread(threading.Thread):
@classmethod
def run(cls):
while not cease_continuous_run.is_set():
schedule.run_pending()
time.sleep(interval)
continuous_thread = ScheduleThread()
continuous_thread.start()
return cease_continuous_run
def printTest(Text):
time.sleep(10)
schedule.every(10).seconds.do(run_threaded,printTest,Text="Texts")
Задание bgJob является демонстрационным.
Вопрос:- Фоновые задания выполняются даже после закрытия сервера. Мне нужно выполнить stop_run_continuously.set()
при выходе из сервера, чтобы остановить его, но я не смог найти способ сделать это.
Я предпочитаю делать это только в django.
Примечание:- Если есть лучший способ выполнения задания, вы также можете предоставить его