• Django 中的Celery 使用


       

     # 安装 由于版本支持情况 使用时版本不要太高 可能会有冲突

    在项目中使用 可以创建一个celeryconfig.py文件

      import djcelery
      djcelery.setup_loader()
      CELERY_IMPORTS=(
          'app.tasks',
      )
      #有些情况可以防止死锁
      CELERYD_FORCE_EXECV=True
      # 设置并发worker数量
      CELERYD_CONCURRENCY=4
      #允许重试
      CELERY_ACKS_LATE=True
      # 每个worker最多执行100个任务被销毁,可以防止内存泄漏
      CELERYD_MAX_TASKS_PER_CHILD=100
      # 超时时间
      CELERYD_TASK_TIME_LIMIT=12*30

    在app中创建tasks

      from celery import task

      @task

      def add(a,b):

        with open("a.text",'a',encoding='utf-8') as f:

          f.write(" this is abc!!")

        print(a+b)

    视图函数views.py

      from django.shortcuts import render,HttpResponse

      from app.tasks import add

      from datetime import datetime

      def test(request):

        ctime = datetime.now()

        utc_ctime = datetime.utcfromtimestamp(ctime.timestamp())

        from datetime import timedelta

        time_delay = timedelta(seconds=5)

        task_time = utc_ctime + time_delay

          result = add.apply_async(args=[4, 3], eta=task_time) 

        print(result.id)

        return HttpResponse('hello word!')

    settings.py中配置

      INSTALLED_APPS = [
          'djcelery',
          'app'
      ]
      from djagocele import celeryconfig
      BROKER_BACKEND='redis' //这里也可以不使用redis,使用其他队列也可以rabbitMQ
      BOOKER_URL='redis://127.0.0.1:6379/1'
      CELERY_RESULT_BACKEND='redis://127.0.0.1:6379/2'
  • 相关阅读:
    oracle中next_day()、last_day()函数解析
    Oracle数据库统一审核的启用测试与关闭
    20170722上课笔记
    20170721上课笔记
    20170720上课笔记
    20170719上课笔记
    20170718上课笔记
    20170717上课笔记
    《Linux系统基础》随堂笔记5
    《oracle的安装》
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/9703146.html
Copyright © 2020-2023  润新知