2 years ago

#31060

test-img

harsh

unable to start workers in celery

I am using Django rest framework to do prediction on two strings and using celery to run inference. But I was unable to make use of celery workers even though I have done everything perfectly. I am getting predictions from drf only

I am using redis as a broker.

My tasks.py

@shared_task(bind=True)
def predictions(self,solute, solvent):

    mol = Chem.MolFromSmiles(solute)
    mol = Chem.AddHs(mol)
    solute = Chem.MolToSmiles(mol)
    solute_graph = get_graph_from_smile(solute)

    mol = Chem.MolFromSmiles(solvent)
    mol = Chem.AddHs(mol)
    solvent = Chem.MolToSmiles(mol)
    solvent_graph = get_graph_from_smile(solvent)
    delta_g, interaction_map = model([solute_graph.to(device), solvent_graph.to(device)])
    return delta_g, torch.trunc(interaction_map)

My views.py

@api_view(['GET'])
def result(request):
    response = {}
    solute = request.GET.get('solute')
    solvent = request.GET.get('solvent')
    results = predictions(solute,solvent)
    response["interaction_map"] = (results[1].detach().numpy()).tolist()

    response["predictions"] = results[0].item()

    return Response({'result': response}, status=200)

I guess the problem is not adding .delay() to results = predictions(solute,solvent) but if I add results = predictions(solute,solvent).delay() I am getting error.

My flower panel enter image description here

Even though I am getting my prediction perfectly without any error their is no celery task is running please help me where I am doing wrong

python

django-rest-framework

celery

django-celery

celery-task

0 Answers

Your Answer

Accepted video resources