Как остановить команду управления django через определенный период времени, используя многопроцессорность?

Мне нужно запустить командную функцию python следующим образом:

from django.core.management import BaseCommand

class Command(BaseCommand):
        def add_arguments(self, parser):
                parser.add_argument('plant', type=int)
                parser.add_argument('month', type=int)
        def handle(self,*args,**options):
                func= Library_Class()
                plants= options.get('plant')
                date= options.get('month')
                for plant in plants:
                        result= func.library_function(length,breadth)
                return

Этот код передает аргументы библиотечной функции, которая в свою очередь возвращает требуемый вывод. Я хочу остановить эту командную функцию после 100 секунд времени выполнения. Как мне использовать многопроцессорность, чтобы вызвать библиотечную функцию как процесс и завершить программу через 100 секунд?

Я посмотрел документацию multiprocessing docs и пришел к следующему:

from multiprocessing import Pool, TimeoutError

from django.core.management import BaseCommand


def do_da_thing(plants, month):
    for plant in plants:
        result= func.library_function(plant, month)

class Command(BaseCommand):
    def add_arguments(self, parser):
        parser.add_argument('plant', type=int)
        parser.add_argument('month', type=int)
    def handle(self,*args,**options):
        func= Library_Class()
        plants= options.get('plant')
        date= options.get('month')
        with Pool(processes=1) as pool:
            res = pool.apply_async(do_da_thing, (plants, month))
            try:
                # block for 100 sec or until we get a reply
                result = res.get(timeout=100)
            except TimeoutError:
                self.stdout.write("took longer than 100 seconds")
        return

Я также не тестировал его вообще.

Вернуться на верх