django 앱에서 해당 폴더 안에 Management라는 폴더/패키지를 만들고 Command라는 이름의 다른 폴더를 만듭니다. 명령 폴더에 runposter.py라는 모듈을 만듭니다. 결국에는 yourapp/management/commands/runposter.py와 같은 구조를 갖게 됩니다.
이 코드에서는 5초마다 중지되지 않는 한 while 루프를 실행하는 스레드를 사용합니다. print("posting")을 실행하려는 함수/로직으로 바꾸세요.
좋습니다. 이제 다른 터미널 창을 열고 pythonmanage.py runposter를 실행하세요. 보시다시피 runposter 명령은 우리가 지정한 모듈 이름으로 생성되었습니다.
# runposter.py import time from threading import Thread, Event from django.conf import settings from django.core.management.base import BaseCommand stop_event = Event() def my_job(): while not stop_event.is_set(): try: print("posting") time.sleep(5) except KeyboardInterrupt: break class Command(BaseCommand): help = "Run Poster." def handle(self, *args, **options): poster = Thread(target=my_job) try: print("Starting poster...") poster.start() while poster.is_alive(): poster.join(timeout=1) except KeyboardInterrupt: print("Stopping poster...") stop_event.set() poster.join() print("Poster shut down successfully!")
그러나 간단한 경우에는 이 정도면 충분합니다.
위 내용은 Django에서 간단한 스케줄러를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!