9 微信小程序

拍卖功能

  • 9 拍卖
    • 今日概要
    • 今日详细
      • 1.celery
        • 1.1 环境的搭建
        • 1.2 快速使用
        • 1.3 django中应用celery
        • 1.4 celery定时执行
        • 1.5 周期性定时任务
      • 2.拍卖业务
        • 2.1 表结构
        • 2.2 数据初始化
        • 2.3 接口

9 拍卖

各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料!

今日概要

  • celery,处理任务的Python的模块。

    • 场景1:

      对【耗时的任务】,通过celery,将任务添加到broker(队列),然后立即给用户返回一个任务ID。
      当任务添加到broker之后,由worker去broker获取任务并处理任务。
      任务弯完成之后,再将结果放到backend中
      
      用户想要检查结果,提供任务ID,我们就可以去backend中去帮他查找。
      
    • 场景2:

      定时任务(定时发布/定时拍卖)
      
  • 拍卖系列接口

今日详细

1.celery

celery是一个基于Python开发的模块,可以帮助我们对任务进行分发和处理。

在这里插入图片描述

1.1 环境的搭建
pip3 install celery==4.4
安装broker: redis或rabbitMQ
pip3 install redis / pika
1.2 快速使用
  • s1.py

    from celery import Celery
    
    app = Celery('tasks', broker='redis://192.168.10.48:6379', backend='redis://192.168.10.48:6379')
    
    @app.task
    def x1(x, y):
        return x + y
    
    @app.task
    def x2(x, y):
        return x - y
    
  • s2.py

    from s1 import x1
    
    result = x1.delay(4, 4)
    print(result.id)
    
  • s3.py

    from celery.result import AsyncResult
    from s1 import app
    
    result_object = AsyncResult(id="任务ID", app=app)
    print(result_object.status)
    

运行程序:

  1. 启动redis

  2. 启动worker

    # 进入当前目录
    celery worker -A s1 -l info
    
    windows
    
    Traceback (most recent call last):
      File "d:\wupeiqi\py_virtual_envs\auction\lib\site-packages\billiard\pool.py", line 362, in workloop
        result = (True, prepare_result(fun(*args, **kwargs)))
      File "d:\wupeiqi\py_virtual_envs\auction\lib\site-packages\celery\app\trace.py", line 546, in _fast_trace_task
        tasks, accept, hostname = _loc
    ValueError: not enough values to unpack (expected 3, got 0)
    
    pip install eventlet
    
    celery worker -A s1 -l info -P eventlet
    
  3. 创建任务

    python s2.py
    python s2.py
    
  4. 查看任务状态

    # 填写任务ID
    ptyhon s3.py 
    
1.3 django中应用celery

之后,需要按照django-celery的要求进行编写代码。

  • 第一步:【项目/项目/settings.py 】添加配置

    CELERY_BROKER_URL = 'redis://192.168.16.85:6379'
    CELERY_ACCEPT_CONTENT = ['json']
    CELERY_RESULT_BACKEND = 'redis://192.168.16.85:6379'
    CELERY_TASK_SERIALIZER = 'json'
    
  • 第二步:【项目/项目/celery.py】在项目同名目录创建 celery.py

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import os
    from celery import Celery
    
    # set the default Django settings module for the 'celery' program.
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'demos.settings')
    
    app = Celery('demos')
    
    # Using a string here means the worker doesn't have to serialize
    # the configuration object to child processes.
    # - namespace='CELERY' means all celery-related configuration keys
    #   should have a `CELERY_` prefix.
    app.config_from_object('django.conf:settings', namespace='CELERY')
    
    # Load task modules from all registered Django app configs.
    # 去每个已注册app中读取 tasks.py 文件
    app.autodiscover_tasks()
    
  • 第三步,【项目/app名称/tasks.py】

    from celery import shared_task
    
    @shared_task
    def add(x, y):
        return x + y
    
    @shared_task
    def mul(x, y):
        return x * y
    
  • 第四步,【项目/项目/__init__.py

    from .celery import app as celery_app
    
    __all__ = ('celery_app',)
    
  • 启动worker

    进入项目目录
    
    celery worker -A demos -l info -P eventlet
    
  • 编写视图函数,调用celery去创建任务。

    • url

      url(r'^create/task/$', task.create_task),
      url(r'^get/result/$', task.get_result),
      
    • 视图函数

      from django.shortcuts import HttpResponse
      from api.tasks import x1
      
      def create_task(request):
          print('请求来了')
          result = x1.delay(2,2)
          print('执行完毕')
          return HttpResponse(result.id)
      
      
      def get_result(request):
          nid = request.GET.get('nid')
          from celery.result import AsyncResult
          # from demos.celery import app
          from demos import celery_app
          result_object = AsyncResult(id=nid, app=celery_app)
          # print(result_object.status)
          data = result_object.get()
          return HttpResponse(data)
      
  • 启动django程序

    python manage.py ....
    
1.4 celery定时执行
1.5 周期性定时任务
  • celery
  • django中也可以结合使用

2.拍卖业务

2.1 表结构
2.2 数据初始化
2.3 接口
  • 专场列表
  • 专场详细
  • 单品详细
  • 保证金页面
    • 单品信息
    • 保证金
      • 全场
      • 单品
    • 支付方式
      • 微信
      • 余额
  • 竞价
    • 查看
    • 提交

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/323406.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二叉树简介

二叉树 二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。 二叉树的遍历 二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。 前序遍历:访问根节点 --> 遍历左子树 --> 遍历右子树中序遍历&…

基于AI视频智能分析技术的周界安全防范方案

一、背景分析 随着科技的不断进步,AI视频智能检测技术已经成为周界安全防范的一种重要手段。A智能分析网关V4基于深度学习和计算机视觉技术,可以通过多种AI周界防范算法,实时、精准地监测人员入侵行为,及时发现异常情况并发出警报…

SeaTunnel 海量数据同步工具的使用(连载中……)

一、概述 SeaTunnel 是一个非常易用,高性能、支持实时流式和离线批处理的海量数据处理产品,前身是 WaterDrop (中文名:水滴),自 2021年10月12日更名为 SeaTunnel 。2021年12月9日,SeaTunnel 正式…

数字化和信息化概念

数字化和信息化,是两个不同的概念,它们各自有着特定的含义和应用场景。 1、数字化 数字化指的是将物理实体、过程或数据转化为数字形式的过程。这一过程中可能包括将纸质文档转化为电子文件、模拟信号转换成数字信号,或者是将实物产品转变…

RT-Thread: eeprom存储芯片 at24cxx软件包使用流程

说明:介绍 i2c 通讯接口的 eeprom at24cxx 读写测、试代码,代码基于 at24cxx 软件包实现。 使用步骤: * 1:在 RT-Thread Settings 中开启 【软件模拟I2C】 * 2:在 RT-Thread Settings 软件包中搜索 at24cxx 添加软件…

深入理解零拷贝技术

注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。 粉丝福利, 免费领取C/C 开发学习资料包、技术视频/代码,1000道大厂面试题,内容包括(C基础,网络编程&#xff…

浅讲人工智能,初识人工智能几个重要领域。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

PTA-7-4 堆排序

代码如下: #include<iostream> using namespace std; void change(int arr[], int n, int i); int main() {int n,i,end,arr[1000];cin >> n;for (i 0; i < n; i){cin >> arr[i];}//进行一次排序,把最大值放到顶端for (i n/2-1; i > 0; i--){change…

Linux 下GEO Server发布图层后,中文乱码解决方案

发布的图层&#xff0c;显示中文乱码&#xff0c;都是框框&#xff1a;如“口口” 第一步先查看Linux字符集 如下命令所示&#xff1a; 1.查看当前系统语言 echo $LANG2.查看安装的语言包 locale如果上面的命令执行后显示的是en_US.UTF-8&#xff0c;则说明当前语言系统及安…

汇编语言与接口技术实验报告——单总线温度采集

一、 实验要求 实验目的&#xff1a; 掌握数码管的使用方式掌握DS18B20温度传感器的工作原理掌握单总线通信方式实现MCU与DS18B20数据传输 实验内容&#xff1a; 学习DS18B20温度传感器的单总线传输机制&#xff0c;通过单片机MCU的I/O实现温度采集&#xff0c;并将数据显示在…

Ubuntu配置NFS客户端和服务端详解——手把手配置

Ubuntu配置NFS客户端和服务端 如果您想实现远程访问并修改 ROS 主机中 Ubuntu 上的文件&#xff0c;可以通过 NFS挂载的方式。虚拟机上的 Ubuntu 系统可以通过 NFS 的方式来访问 ROS 主机中Ubuntu 系统的文件&#xff0c;NFS 分为服务器挂载和客户端访问。这里虚拟机上的 Ubun…

KubeSphere 在 vsleem 的落地实践

作者&#xff1a;方忠&#xff0c;苏州威视通智能科技有限公司技术经理&#xff0c;开源技术爱好者&#xff0c;长期活跃于 dromara 开源社区并参与贡献。 公司介绍 公司简介 苏州威视通智能科技有限公司&#xff0c;是一家全球领先的全景 AI 平台提供商&#xff0c;结合极致…

界面控件DevExpress WPF属性网格 - 让应用轻松显示编辑各种属性事件

DevExpress WPF Property Grid&#xff08;属性网格&#xff09;灵感来自于Visual Studio&#xff0c;Visual Studio启发的属性窗口(对象检查器)让在WPF应用程序显示和编辑任何对象的属性和事件变得更容易&#xff01; P.S&#xff1a;DevExpress WPF拥有120个控件和库&#x…

Elasticsearch添加7.17.10IK分词器

Elasticsearch添加7.17.10IK分词器 在https://github.com/medcl/elasticsearch-analysis-ik/tree/7.x中未找到7.17.10版本的发布版本&#xff0c;如歌ik版本和Elasticsearch版本不同安装后无法启动。所以下载git上的源代码&#xff0c;并手动编译指定版本IK分词器。 &#xff…

2. 示例:Spring Boot 入门

1.1 概述 Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。习惯优于配置 1.2 为什么使用Spring Boot J2EE笨重的开发、繁多的配置、低下的开发效率、复杂的部署流程、第三方技术集成难度大。 1.3 Spring Bo…

HarmonyOS 通过 animateTo讲解角度动画效果

本文 我们依旧来说动画 这次 我们来说角度 我们先写一个这样的代码模板 Entry Component struct Index {build() {Column({space: 30}) {Text("修改元素尺寸").fontSize(38).margin({top:188})Image("https://img2.baidu.com/it/u1814561676,2470063876&f…

gradle版本中-bin与-all区别

打开android studio下载的gradle文件&#xff0c;发现-all比-bin多了一个docs文件夹和一个src文件夹。-bin是编译后的二进制发布版&#xff0c;-all还包含了源码和文档&#xff0c;比-bin大了几十兆&#xff0c;两者其余没有区别。 android开发只关注gradle功能不关注实现的情况…

Rust-借用检查

Rust语言的核心特点是&#xff1a;在没有放弃对内存的直接控制力的情况下&#xff0c;实现了内存安全。 所谓对内存的直接控制能力&#xff0c;前文已经有所展示&#xff1a;可以自行决定内存布局&#xff0c;包括在栈上分配内存&#xff0c;还是在堆上分配内存&#xff1b;支…

虾皮广告数据:​如何利用广告数据优化虾皮(Shopee)销售业绩

在虾皮&#xff08;Shopee&#xff09;平台上&#xff0c;广告数据对于卖家来说是至关重要的&#xff0c;它可以帮助卖家了解广告的效果并进行相应的优化。通过监控和分析这些广告数据&#xff0c;卖家可以更好地理解广告的表现&#xff0c;调整广告策略&#xff0c;提高广告的…

网站监测工具的极与极,Site24x7 与百川云

今天我们聊聊我用 Site24x7 的感受。对于有网站监测有需求的站长们来说&#xff0c;Site24x7 确实是个很强大的应用。但是它与百川云网站监测完全不一样&#xff0c;百川云网站监测是适合用中小微企业的交互极简的saas 应用&#xff0c;Site24x7 完全是另一个极端&#xff0c;适…