Как заставить django спать

У меня есть проект, в котором один клиент регистрирует запрос и некоторые другие клиенты должны ответить, хотят ли они работать с ним или нет в реальном времени проблема в том, что как я могу засыпать потребителя его ждать, пока один из них принял Если я использую time.sleep(), то весь проект будет спать

class ConsulationConsumer(WebsocketConsumer):

    def connet(self):
        pass 

    def diconnect(self,code_close):
        pass 

    def receive(self, text_data):
        text_data_json = json.loads(text_data)
        consultation = text_data_json['message']
        consulator=ConsultationOrder.objects.get(id=consultation).lawyer

        if(consulator==None):
            consulator=0        
        self.send(text_data=json.dumps({
            'message': consulator
        }))

Я использовал Celery для решения проблемы таким образом Я использовал apply_async и countdown для решения проблемы таким образом

Я создал задачу celery и внутри цикла for использовал apply_async с обратным отсчетом

for idx,lawyer in enumerate(lawyers):
    if(consultation.lawyer):
        break      
    change_offered_lawyer.apply_async((id,lawyer.id),countdown=idx*60)

Таким образом, каждый раз на основе счета idx представление будет ждать, а затем будет вызывать задачу

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