一、任务交给Celery
Django任务交给Celery的方法和普通使用Celery任务的调用基本无区别,只是将执行代码的放到到View视图中
而获取结果,往往并不能把结果和第1次请求一起响应,若想获取结果是通过第2次请求获取结果
代码如下:
from django.http import HttpResponse
from celery.result import AsyncResult
from .tasks import send_email,send_sms
# Create your views here.
def index(request):
# 调用任务函数
work_id1 = send_email.delay('baizhan')
work_id2 = send_sms.delay('sxt')
return HttpResponse(f"已经执行了定时,任务ID:{work_id1}=={work_id2}")
def result(request):
work_id = request.GET.get('work_id')
# 创建获取结果的对象
result = AsyncResult(work_id)
# 获取任务的结果
res = result.get()
return HttpResp