У меня есть проект django на узле ubuntu EC2, который выполняет интенсивный процесс с интенсивным вычислением, который обычно занимает более 60 секунд. Мне нужно кэшировать результаты. Я читал http://www.caktusgroup.com/blog/2014/06/23/scheduling-tasks-celery/ и http://michal.karzynski.pl/blog/2014/05/18/setting-up-an-asynchronous-task-queue-for-django-using-celery-redis/ вместе с документами. Я смог получить базовую задачу, работающую в командной строке, но я не понимаю, как запустить задачу изнутри функции django.Основной вызов функции задачи сельдерея изнутри функции django
Сейчас структура моего кода на мой взгляд Джанго является:
from django.shortcuts import render
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from __future__ import absolute_import
from celery import shared_task
@csrf_exempt
def index(request):
token = str(request.POST.get('token', False))
calculator(token)
return HttpResponse(token)
@shared_task
def calculator(token):
# do calculation
# store result in cache
return
это так же просто, как вызов:
calculator(token)
в индексной функции?
Спасибо, что помогло! – user61629