栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

异步,定时,分页简介

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

异步,定时,分页简介

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 系列文章目录
  • 前言
  • 一、异步,定时任务
    • 1,原理
    • 2,使用
  • 二、分页
    • 1,使用场景


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、异步,定时任务是什么?

异步:异步任务主要用于处理处理时间长并且不需要返回结果的一些内容

应用场景:例如在我们记录用户的操作日志的时候, 不可能等日志记录完成再实现正常的业务, 所以可以把机制的记录改为异步操作即可

定时:这个方法是系统自动调用的,不需要通过controller层来调用。只要满足了cron表达式即可调用

应用场景:定时任务主要应用的场景是定时调用,比如做一个办公系统,每周一早上7点30分给所有员工发送一个邮件,告诉员工八点要开会,请员工准时参加会议。每月的账单通过邮件的形式发送给相关人员、数据监控等等

二、使用步骤 1.引入库

代码如下(示例):

启动命令
celery -A celery_task worker -l info -P eventlet
celery -A celery_task beat -l info

 配置(仅测试使用)

目录结构
├─celery_task
│  └─__init__
│  └─config
│  └─tasks

主程序配置

import os
from datetime import timedelta
import django
from celery import Celery


os.environ.setdefault("DJANGO_SETTINGS_MODULE", "property.settings")
django.setup()

celery_app = Celery('test')
celery_app.config_from_object('celery_task.config')
celery_app.autodiscover_tasks(['celery_task.tasks'])
celery_app.conf.update(
    CELERYBEAT_SCHEDULE={
        'time_task': {
            'task': 'celery_task.tasks.time_task',
            'schedule':  timedelta(seconds=3),
            'args': ()
        },
    }
)
BROKER_URL = 'redis://127.0.0.1:6379/11'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/12'
# 时区
# CELERY_TIMEZONE = 'Asia/Shanghai'

# 导入指定的任务模块
CELERY_IMPORTS = (
    'celery_task.tasks',
)
import time
from celery_task import celery_app


# @app.task 指定将这个函数的执行交给celery异步执行
@celery_app.task
def test(mobile, code):
    print('1111')
    print(mobile, code)
    time.sleep(15)
    return mobile + code


@celery_app.task(name='send_email')
def send_email():
    print('发送运输邮件')


@celery_app.task(name='send_email2')
def send_email2():
    print('发送到站邮件')


@celery_app.task(name='celery_task.tasks.time_task')    # name="位置写要全"
def time_task():
    print('定时3秒执行一次')

2.分页:

序列化输出

class RepairIntoSer(serializers.ModelSerializer):
    class Meta:
        model = RepairInto
        fields = "__all__"






class RepairPage(ListAPIView):
    queryset = RepairInto.objects.all()
    serializer_class = RepairIntoSer
    pagination_class = Pagination



class Pagination(PageNumberPagination):
    # 设置一页多少数据
    page_size = 3
    # 设置页码的参数
    page_query_param = 'page'
    page_size_query_param = 'pagesize'






总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号