Python分布式任务队列Celery

news2024/12/23 17:13:33

一、分布式任务队列Celery介绍

Python celery是一个基于Python的分布式任务队列,主要用于任务的异步执行、定时调度和分布式处理。它采用了生产者/消费者模式,通过消息中间件实现多个工作者进程之间的协作。

Python celery的架构主要包括以下组件:

  1. 生产者:生产者是负责产生消息的对象。在Python celery中,生产者通常是应用程序本身。

  2. 消息中间件:消息中间件是负责存储和传输消息的组件。Python celery支持多种消息中间件,如RabbitMQ、Redis、AMQP等。

  3. 消费者:消费者是负责接收和处理消息的对象。在Python celery中,消费者通常是工作者进程。

  4. 任务调度器:任务调度器是负责定时调度任务的组件。在Python celery中,任务调度器通常是Celery Beat。

Python celery的工作流程如下:

  1. 应用程序通过调用celery的task函数来定义任务。

  2. 应用程序通过调用celery的send_task函数发送任务到消息队列。

  3. 工作者进程从消息队列中接收任务并进行处理。

  4. 工作者进程将任务结果发送回消息队列。

  5. 应用程序从消息队列中接收任务结果并进行处理。

通过Python celery,我们可以轻松实现分布式任务的处理和调度,提高系统的并发能力和稳定性。

二、Linux环境Celery安装部署

命令:pip3 install Celery

[root@localhost python]# pip3 install Celery
Collecting Celery
  Downloading celery-5.1.2-py3-none-any.whl (401 kB)
     |▉                               | 10 kB 11.7 MB/s eta 0:00:0     |█▋                              | 20 kB 13.9 MB/s eta 0:00:0     |██▌                             | 30 kB 18.4 MB/s eta 0:00:0     |███▎                            | 40 kB 595 kB/s eta 0:00:01     |████                            | 51 kB 703 kB/s eta 0:00:01     |█████                           | 61 kB 840 kB/s eta 0:00:01     |█████▊                          | 71 kB 867 kB/s eta 0:00:01     |██████▌                         | 81 kB 889 kB/s eta 0:00:01     |███████▍                        | 92 kB 998 kB/s eta 0:00:01     |████████▏                       | 102 kB 1.0 MB/s eta 0:00:0     |█████████                       | 112 kB 1.0 MB/s eta 0:00:0     |█████████▉                      | 122 kB 1.0 MB/s eta 0:00:0     |██████████▋                     | 133 kB 1.0 MB/s eta 0:00:0     |███████████▍                    | 143 kB 1.0 MB/s eta 0:00:0     |████████████▎                   | 153 kB 1.0 MB/s eta 0:00:0     |█████████████                   | 163 kB 1.0 MB/s eta 0:00:0     |█████████████▉                  | 174 kB 1.0 MB/s eta 0:00:0     |██████████████▊                 | 184 kB 1.0 MB/s eta 0:00:0     |███████████████▌                | 194 kB 1.0 MB/s eta 0:00:0     |████████████████▎               | 204 kB 1.0 MB/s eta 0:00:0     |█████████████████▏              | 215 kB 1.0 MB/s eta 0:00:0     |██████████████████              | 225 kB 1.0 MB/s eta 0:00:0     |██████████████████▊             | 235 kB 1.0 MB/s eta 0:00:0     |███████████████████▋            | 245 kB 1.0 MB/s eta 0:00:0     |████████████████████▍           | 256 kB 1.0 MB/s eta 0:00:0     |█████████████████████▏          | 266 kB 1.0 MB/s eta 0:00:0     |██████████████████████          | 276 kB 1.0 MB/s eta 0:00:0     |██████████████████████▉         | 286 kB 1.0 MB/s eta 0:00:0     |███████████████████████▋        | 296 kB 1.0 MB/s eta 0:00:0     |████████████████████████▌       | 307 kB 1.0 MB/s eta 0:00:0     |█████████████████████████▎      | 317 kB 1.0 MB/s eta 0:00:0     |██████████████████████████      | 327 kB 1.0 MB/s eta 0:00:0     |███████████████████████████     | 337 kB 1.0 MB/s eta 0:00:0     |███████████████████████████▊    | 348 kB 1.0 MB/s eta 0:00:0     |████████████████████████████▌   | 358 kB 1.0 MB/s eta 0:00:0     |█████████████████████████████▍  | 368 kB 1.0 MB/s eta 0:00:0     |██████████████████████████████▏ | 378 kB 1.0 MB/s eta 0:00:0     |███████████████████████████████ | 389 kB 1.0 MB/s eta 0:00:0     |███████████████████████████████▉| 399 kB 1.0 MB/s eta 0:00:0     |████████████████████████████████| 401 kB 1.0 MB/s            
Collecting kombu<6.0,>=5.1.0
  Downloading kombu-5.1.0-py3-none-any.whl (187 kB)
     |█▊                              | 10 kB 20.3 MB/s eta 0:00:0     |███▌                            | 20 kB 33.1 MB/s eta 0:00:0     |█████▎                          | 30 kB 46.0 MB/s eta 0:00:0     |███████                         | 40 kB 3.4 MB/s eta 0:00:01     |████████▊                       | 51 kB 4.0 MB/s eta 0:00:01     |██████████▌                     | 61 kB 4.8 MB/s eta 0:00:01     |████████████▎                   | 71 kB 5.5 MB/s eta 0:00:01     |██████████████                  | 81 kB 6.2 MB/s eta 0:00:01     |███████████████▊                | 92 kB 6.9 MB/s eta 0:00:01     |█████████████████▌              | 102 kB 7.6 MB/s eta 0:00:0     |███████████████████▎            | 112 kB 7.6 MB/s eta 0:00:0     |█████████████████████           | 122 kB 7.6 MB/s eta 0:00:0     |██████████████████████▊         | 133 kB 7.6 MB/s eta 0:00:0     |████████████████████████▌       | 143 kB 7.6 MB/s eta 0:00:0     |██████████████████████████▎     | 153 kB 7.6 MB/s eta 0:00:0     |████████████████████████████    | 163 kB 7.6 MB/s eta 0:00:0     |█████████████████████████████▊  | 174 kB 7.6 MB/s eta 0:00:0     |███████████████████████████████▌| 184 kB 7.6 MB/s eta 0:00:0     |████████████████████████████████| 187 kB 7.6 MB/s            
Collecting click-repl>=0.1.6
  Downloading click_repl-0.3.0-py3-none-any.whl (10 kB)
Collecting click<8.0,>=7.0
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
     |████                            | 10 kB 10.1 MB/s eta 0:00:0     |████████                        | 20 kB 10.4 MB/s eta 0:00:0     |███████████▉                    | 30 kB 14.1 MB/s eta 0:00:0     |███████████████▉                | 40 kB 7.7 MB/s eta 0:00:01     |███████████████████▉            | 51 kB 7.1 MB/s eta 0:00:01     |███████████████████████▊        | 61 kB 8.3 MB/s eta 0:00:01     |███████████████████████████▊    | 71 kB 7.2 MB/s eta 0:00:01     |███████████████████████████████▊| 81 kB 7.9 MB/s eta 0:00:01     |████████████████████████████████| 82 kB 2.7 MB/s             
Collecting billiard<4.0,>=3.6.4.0
  Downloading billiard-3.6.4.0-py3-none-any.whl (89 kB)
     |███▋                            | 10 kB 15.8 MB/s eta 0:00:0     |███████▎                        | 20 kB 25.5 MB/s eta 0:00:0     |███████████                     | 30 kB 34.6 MB/s eta 0:00:0     |██████████████▋                 | 40 kB 42.9 MB/s eta 0:00:0     |██████████████████▎             | 51 kB 3.7 MB/s eta 0:00:01     |██████████████████████          | 61 kB 4.4 MB/s eta 0:00:01     |█████████████████████████▋      | 71 kB 5.0 MB/s eta 0:00:01     |█████████████████████████████▎  | 81 kB 5.7 MB/s eta 0:00:01     |████████████████████████████████| 89 kB 5.4 MB/s             
Collecting click-plugins>=1.1.1
  Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Requirement already satisfied: setuptools in /usr/lib/python3.6/site-packages (from Celery) (39.2.0)
Collecting click-didyoumean>=0.0.3
  Downloading click_didyoumean-0.3.0-py3-none-any.whl (2.7 kB)
Collecting vine<6.0,>=5.0.0
  Downloading vine-5.0.0-py2.py3-none-any.whl (9.4 kB)
Collecting pytz>dev
  Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
     |▋                               | 10 kB 16.2 MB/s eta 0:00:0     |█▎                              | 20 kB 22.3 MB/s eta 0:00:0     |██                              | 30 kB 31.5 MB/s eta 0:00:0     |██▋                             | 40 kB 39.2 MB/s eta 0:00:0     |███▎                            | 51 kB 5.8 MB/s eta 0:00:01     |████                            | 61 kB 6.7 MB/s eta 0:00:01     |████▋                           | 71 kB 2.3 MB/s eta 0:00:01     |█████▏                          | 81 kB 2.6 MB/s eta 0:00:01     |█████▉                          | 92 kB 2.2 MB/s eta 0:00:01     |██████▌                         | 102 kB 2.4 MB/s eta 0:00:0     |███████▏                        | 112 kB 2.4 MB/s eta 0:00:0     |███████▉                        | 122 kB 2.4 MB/s eta 0:00:0     |████████▌                       | 133 kB 2.4 MB/s eta 0:00:0     |█████████▏                      | 143 kB 2.4 MB/s eta 0:00:0     |█████████▉                      | 153 kB 2.4 MB/s eta 0:00:0     |██████████▍                     | 163 kB 2.4 MB/s eta 0:00:0     |███████████                     | 174 kB 2.4 MB/s eta 0:00:0     |███████████▊                    | 184 kB 2.4 MB/s eta 0:00:0     |████████████▍                   | 194 kB 2.4 MB/s eta 0:00:0     |█████████████                   | 204 kB 2.4 MB/s eta 0:00:0     |█████████████▊                  | 215 kB 2.4 MB/s eta 0:00:0     |██████████████▍                 | 225 kB 2.4 MB/s eta 0:00:0     |███████████████                 | 235 kB 2.4 MB/s eta 0:00:0     |███████████████▋                | 245 kB 2.4 MB/s eta 0:00:0     |████████████████▎               | 256 kB 2.4 MB/s eta 0:00:0     |█████████████████               | 266 kB 2.4 MB/s eta 0:00:0     |█████████████████▋              | 276 kB 2.4 MB/s eta 0:00:0     |██████████████████▎             | 286 kB 2.4 MB/s eta 0:00:0     |███████████████████             | 296 kB 2.4 MB/s eta 0:00:0     |███████████████████▋            | 307 kB 2.4 MB/s eta 0:00:0     |████████████████████▏           | 317 kB 2.4 MB/s eta 0:00:0     |████████████████████▉           | 327 kB 2.4 MB/s eta 0:00:0     |█████████████████████▌          | 337 kB 2.4 MB/s eta 0:00:0     |██████████████████████▏         | 348 kB 2.4 MB/s eta 0:00:0     |██████████████████████▉         | 358 kB 2.4 MB/s eta 0:00:0     |███████████████████████▌        | 368 kB 2.4 MB/s eta 0:00:0     |████████████████████████▏       | 378 kB 2.4 MB/s eta 0:00:0     |████████████████████████▉       | 389 kB 2.4 MB/s eta 0:00:0     |█████████████████████████▍      | 399 kB 2.4 MB/s eta 0:00:0     |██████████████████████████      | 409 kB 2.4 MB/s eta 0:00:0     |██████████████████████████▊     | 419 kB 2.4 MB/s eta 0:00:0     |███████████████████████████▍    | 430 kB 2.4 MB/s eta 0:00:0     |████████████████████████████    | 440 kB 2.4 MB/s eta 0:00:0     |████████████████████████████▊   | 450 kB 2.4 MB/s eta 0:00:0     |█████████████████████████████▍  | 460 kB 2.4 MB/s eta 0:00:0     |██████████████████████████████  | 471 kB 2.4 MB/s eta 0:00:0     |██████████████████████████████▋ | 481 kB 2.4 MB/s eta 0:00:0     |███████████████████████████████▎| 491 kB 2.4 MB/s eta 0:00:0     |████████████████████████████████| 501 kB 2.4 MB/s eta 0:00:0     |████████████████████████████████| 502 kB 2.4 MB/s            
Collecting prompt-toolkit>=3.0.36
  Downloading prompt_toolkit-3.0.36-py3-none-any.whl (386 kB)
     |▉                               | 10 kB 34.5 MB/s eta 0:00:0     |█▊                              | 20 kB 45.2 MB/s eta 0:00:0     |██▌                             | 30 kB 58.9 MB/s eta 0:00:0     |███▍                            | 40 kB 70.9 MB/s eta 0:00:0     |████▎                           | 51 kB 81.3 MB/s eta 0:00:0     |█████                           | 61 kB 91.3 MB/s eta 0:00:0     |██████                          | 71 kB 99.3 MB/s eta 0:00:0     |██████▉                         | 81 kB 105.8 MB/s eta 0:00:     |███████▋                        | 92 kB 113.0 MB/s eta 0:00:     |████████▌                       | 102 kB 118.8 MB/s eta 0:00     |█████████▎                      | 112 kB 118.8 MB/s eta 0:00     |██████████▏                     | 122 kB 118.8 MB/s eta 0:00     |███████████                     | 133 kB 118.8 MB/s eta 0:00     |███████████▉                    | 143 kB 118.8 MB/s eta 0:00     |████████████▊                   | 153 kB 118.8 MB/s eta 0:00     |█████████████▋                  | 163 kB 118.8 MB/s eta 0:00     |██████████████▍                 | 174 kB 118.8 MB/s eta 0:00     |███████████████▎                | 184 kB 118.8 MB/s eta 0:00     |████████████████▏               | 194 kB 118.8 MB/s eta 0:00     |█████████████████               | 204 kB 118.8 MB/s eta 0:00     |█████████████████▉              | 215 kB 118.8 MB/s eta 0:00     |██████████████████▋             | 225 kB 118.8 MB/s eta 0:00     |███████████████████▌            | 235 kB 118.8 MB/s eta 0:00     |████████████████████▍           | 245 kB 118.8 MB/s eta 0:00     |█████████████████████▏          | 256 kB 118.8 MB/s eta 0:00     |██████████████████████          | 266 kB 118.8 MB/s eta 0:00     |███████████████████████         | 276 kB 118.8 MB/s eta 0:00     |███████████████████████▊        | 286 kB 118.8 MB/s eta 0:00     |████████████████████████▋       | 296 kB 118.8 MB/s eta 0:00     |█████████████████████████▍      | 307 kB 118.8 MB/s eta 0:00     |██████████████████████████▎     | 317 kB 118.8 MB/s eta 0:00     |███████████████████████████▏    | 327 kB 118.8 MB/s eta 0:00     |████████████████████████████    | 337 kB 118.8 MB/s eta 0:00     |████████████████████████████▉   | 348 kB 118.8 MB/s eta 0:00     |█████████████████████████████▊  | 358 kB 118.8 MB/s eta 0:00     |██████████████████████████████▌ | 368 kB 118.8 MB/s eta 0:00     |███████████████████████████████▍| 378 kB 118.8 MB/s eta 0:00     |████████████████████████████████| 386 kB 118.8 MB/s            
Collecting cached-property
  Downloading cached_property-1.5.2-py2.py3-none-any.whl (7.6 kB)
Collecting importlib-metadata>=0.18
  Downloading importlib_metadata-4.8.3-py3-none-any.whl (17 kB)
Collecting amqp<6.0.0,>=5.0.6
  Downloading amqp-5.1.1-py3-none-any.whl (50 kB)
     |██████▌                         | 10 kB 21.6 MB/s eta 0:00:0     |█████████████                   | 20 kB 28.1 MB/s eta 0:00:0     |███████████████████▍            | 30 kB 36.1 MB/s eta 0:00:0     |█████████████████████████▉      | 40 kB 41.0 MB/s eta 0:00:0     |████████████████████████████████| 50 kB 11.9 MB/s            
Collecting typing-extensions>=3.6.4
  Downloading typing_extensions-4.1.1-py3-none-any.whl (26 kB)
Collecting zipp>=0.5
  Downloading zipp-3.6.0-py3-none-any.whl (5.3 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.6-py2.py3-none-any.whl (29 kB)
Installing collected packages: zipp, wcwidth, vine, typing-extensions, prompt-toolkit, importlib-metadata, click, cached-property, amqp, pytz, kombu, click-repl, click-plugins, click-didyoumean, billiard, Celery
Successfully installed Celery-5.1.2 amqp-5.1.1 billiard-3.6.4.0 cached-property-1.5.2 click-7.1.2 click-didyoumean-0.3.0 click-plugins-1.1.1 click-repl-0.3.0 importlib-metadata-4.8.3 kombu-5.1.0 prompt-toolkit-3.0.36 pytz-2023.3 typing-extensions-4.1.1 vine-5.0.0 wcwidth-0.2.6 zipp-3.6.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

三、Python celery分布式任务架构的使用

以下是一个简单的例子,说明Python celery分布式任务架构如何使用:

首先,安装Celery和消息中间件,比如RabbitMQ或Redis。

然后,在Python应用程序中定义任务,例如:

from celery import Celery

app = Celery('tasks', backend='rpc://', broker='pyamqp://guest@localhost//')

@app.task
def add(x, y):
    return x + y

在以上代码中,我们通过Celery创建了一个名为tasks的应用程序,并定义了一个名为add的任务,这个任务会将两个数字相加并返回结果。

接下来,在Python应用程序中调用任务,例如:

from tasks import add

result = add.delay(4, 5)
print(result.get())

在以上代码中,我们通过add.delay函数调用任务,并获取异步执行结果。

最后,在终端中启动工作者进程:

celery -A tasks worker --loglevel=info

在终端中启动Celery Beat(任务调度器):

celery -A tasks beat --loglevel=info

通过以上步骤,我们就可以使用Python celery分布式任务架构来处理任务了。其中,应用程序和工作者进程可以在不同的服务器上运行,通过消息中间件进行通信。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

new和不用new调用构造函数,有什么区别?

new和不用new的构造函数&#xff0c;有什么区别&#xff1f; 下面从有return和无return,如果在有return的情况下&#xff0c;return原始类型数据和return引用应用类型数据等几方面进行论述&#x1f44d;&#x1f44d;&#x1f44d; 区别1&#xff1a;当没有return时 functio…

Bus消息总线(在Spring Cloud整合Bus(idea19版本)

Bus消息总线 所谓消息总线Bus&#xff0c;即我们经常会使用MQ消息代理构建一个共用的Topic&#xff0c;通过这个Topic连接各个微服务实例,MQ广播的消息会被所有在注册中心的微服务实例监听和消费。换言之就是通过一个主题连接各个微服务&#xff0c;打通脉络 Spring Cloud Bus …

FastDDS 源码剖析:DataWriter分析

目录 DataWriter分析 DataWriter 类分析 DataWriterImpl 类分析 关键函数分析 DataWriter分析 DataWriter 类分析 DataWriter 类是 Fast DDS 库中的一个重要类&#xff0c;它用于实现 DDS&#xff08;Data Distribution Service&#xff09;发布-订阅通信模型中的数据写入…

Git #01 操作记录

本篇内容 0. 前期配置1. 仓库1.1 上传本地代码到远程仓库 0. 前期配置 请提前配置好 git 的全局用户名&#xff1a; # xin&#xff1a;账号名 $ git config --global user.name "xin" # xin163.com&#xff1a;账号绑定的邮箱地址 $ git config --global user.emai…

单片机能否替代PLC实现控制和自动化系统?

是的&#xff0c;单片机可以在某些情况下替代PLC&#xff0c;但在其他情况下可能并不适用。以下是对这个问题的详细解释&#xff1a; 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 灵活性和可编程性&#xff1a;PLC相对于单片机来说更具有灵活性和可编…

DolphinScheduler minio(S3支持)开启资源中心

DolphinScheduler 如果是在3.0.5 及之前的版本&#xff0c;没办法支持 S3 的协议的 当你按照文档配置之后&#xff0c;运行启动之后&#xff0c;在master 和 worker 节点&#xff0c;都会出现 缺包的依赖问题。 那这个问题在什么版本修复了呢&#xff1f; 3.0.6... 那 3.0.6 …

每个前端开发者都应知道的10个实用网站

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的&#xff0c;我们出的钱 体验地…

sprinboot企业客户信息反馈平台

企业客户信息反馈平台的开发运用java技术&#xff0c;MIS的总体思想&#xff0c;以及MYSQL等技术的支持下共同完成了该平台的开发&#xff0c;实现了企业客户信息反馈管理的信息化&#xff0c;使用户体验到更优秀的企业客户信息反馈管理&#xff0c;管理员管理操作将更加方便&a…

canal番外篇-otter

前置知识点 主从复制binlogcanal正则dockerjava 前置工具 dockerotter-all 场景描述&#xff08;增量同步&#xff09; 目前项目中使用的是mysql5.5&#xff0c;计划升级为mysql8.1&#xff0c;版本跨度较大&#xff0c;市面上可靠工具选择较少。otter符合预期&#xff0c…

3Ds max入门教程:为男性角色创建服装T 恤

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 3ds Max 角色服装教程 在本 3ds Max 教程中&#xff0c;我们将为角色模型创建一个简单的 T 恤。我们提供了一个“human_figure.obj”文件供您导入模型。因此&#xff0c;本教程将重点介绍的是创建服装&…

【VTK】VTK 显示小球例子,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的&#xff0c;一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏&#xff1a;Visual Studio。 关于更多此例子的资料&#xff0c;可以参考&#xff1a;【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。 文章目录 版本环境VTKTest.…

【机器人模拟-01】使用URDF在中创建模拟移动机器人

一、说明 在本教程中,我将向您展示如何使用通用机器人描述格式 (URDF)(机器人建模的标准 ROS 格式)创建模拟移动机器人。 机器人专家喜欢在构建机器人之前对其进行模拟,以测试不同的算法。您可以想象,使用物理机器人犯错的成本可能很高(例如,将移动机器人高速…

SPSS方差分析

参考文章 导入准备好的数据 选择分析方法 选择参数 选择对比&#xff0c;把组别放入因子框中&#xff0c;把红细胞增加数放进因变量列表 勾选“多项式”&#xff0c;等级取默认“线性” &#xff0c;继续 接着点击“事后比较”&#xff0c;弹出对话框&#xff0c;勾选“LSD” …

华为OD机试真题 JavaScript 实现【分糖果】【2022Q2 200分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示 专栏导读 本专栏收录于《华为OD机试&#xff08;JavaScript&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都…

Windows Bat实现延时功能的几种常见方式

文章目录 1. 使用ping命令实现延时2. 使用timeout命令实现延时3. 使用choice命令实现延时4. 使用for循环实现延时5. 使用sleep命令实现延时6. 使用VBScript.sleep实现延时总结 在 bat批处理中实现延时功能的几种常用方式 1. 使用ping命令实现延时 使用ping命令可以实现延时的…

mysql备份,视图

一、备份与还原 1.设计样例表 CREATE DATABASE booksDB; use booksDB; --创建表book2 CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL); --创建表authors CREATE TABLE authors(auth_id INT NOT NULL PRIM…

java学习路程之篇六、知识点、算数运算符、自增自减运算符、类型转换

文章目录 1、算术运算符2、自增自减运算符3、类型转换 1、算术运算符 2、自增自减运算符 3、类型转换

Serverless是什么?如何使用?有哪些优势?国内外有哪些Serverless平台?

111. Serverless是什么&#xff1f;如何使用&#xff1f;有哪些优势&#xff1f;国内外有哪些Serverless平台&#xff1f; 一、 Serverless是什么&#xff1f; 百度百科 Serverless 是云计算的一种模型。以平台即服务&#xff08;PaaS&#xff09;为基础&#xff0c;无服务器…

【沐风老师】3DMAX灯光放置插件LightPlacer使用方法教程

3DMAX灯光放置插件LightPlacer使用方法 3DMAX灯光放置插件LightPlacer&#xff0c;用于3dMax放置和管理灯光的插件&#xff0c;可以在3dMax中一键制作所需的灯光&#xff0c;且通过插件创建出来的灯光属性可以在该面板下进行直接修改&#xff0c;并不需要切换至堆栈。该插件的有…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

1 断言设置思路 这里总结了我在项目中常用的5种断言方式&#xff0c;基本可能满足90%以上的断言场景&#xff0c;具体参见如下脑图&#xff1a; 下面分别解释一下图中的五种思路&#xff1a; 1&#xff09; 响应码 对于http类接口&#xff0c;有时开发人员只是通过设置接口响…