Django

Django custom management command

Going9 2023. 9. 15. 10:42

크롤링하는 함수를 작성 후 이것들을 병렬 처리하기 위해 커스텀한 명령어를 생성함

 

import threading
from django.core.management.base import BaseCommand
from crawlers.get_cpu_list import get_cpu_list
from crawlers.get_board_list import get_board_list


class Command(BaseCommand):
    help = 'pcgg 크롤링 명령어'
    output_transaction = True

    def handle(self, *args, **options):
        tasks = []
        task1 = threading.Thread(target=get_cpu_list)
        task2 = threading.Thread(target=get_board_list)

        task1.start()
        tasks.append(task1)

        task2.start()
        tasks.append(task2)

        for task in tasks:
            task.join()

파일 이름이 명령어가 됨. 예를 들어 위 파일 이름이 crawling_all.py 인데 이 명령을 실행하려면
"py manage.py crawling_all"을 입력하면 된다.

 

handle내부에 원하는 로직을 작성하면 된다.