Сокращение отставания и потребления сельдерея - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть приложение Django, которое просто проверяет API и затем сохраняет ответ от API на мою БД, если статус завершен, для этого я использую celery, задача celery выглядит следующим образом

@task(bind=True, priority=5)
def process_domain_scan(self, scan_url):
        response = self.get_status(scan_url)
        if response and (response.get('status') != "FAILED"):
            while response and response.get('status') == "PENDING":
                print "processing :: {}".format(response)
                time.sleep(5)
                response = self.get_status(scan_url)

        if response and response.get('status') == "COMPLETED":
            #store to database

проблема здесь в том, что иногда работа, которую я выполняю на внешнем API, может ждать часами, и, следовательно, моя задача сельдерея будет в oop часами в ожидании возвращения статуса Completed есть ли лучший способ использовать сельдерей, чтобы сделать это, не дожидаясь возврата API Completed

...