一、任务交给Celery

Django之Celery篇(三)-LMLPHP

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
03-25 06:41