Ray's Blog 
  • 主页
  • 归档
  • 分类
  • 标签
  • 关于
  •     

Asyncio基本用法

1.简介 Asyncio是Python3.4加入的异步编程模块,用来取代yield,实现协程。asyncio 模块在单线程上启动一个事件循环(event loop),时刻监听新进入循环的事件,加以处理,并不断重复这个过程,直到异步任务结束 官方文档:https://docs.python.org/zh-cn/3.7/library/asyncio-task.html# 基本概念 event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数 coroutine 协程:协程对象,指一个使用async关键字定义的函数,它的调用不会立即执行函数,而是会返回一个协程对象。协程对象需要注册到事件循环,由事件循环调用 task 任务:一个协程对象就是一个原生可以挂起的函数,任务则是对协程进一步封装,其中包含任务的各种状态 future: 代表将来执行或没有执行的任务的结果。它和task上没有本质的区别 async/await 关键字:python3.5 用于定义协程的关键字,async定义一个协程,await用于挂起阻
 2023-12-13   Python 

Python中的管道符和偏函数

1.偏函数partial偏函数的作用类似装饰器,它可以在不改变原有函数的基础上,扩展函数的功能。在频繁调用某个函数时,某些参数是已知的固定值,如果不想每次都传入,可以利用partial来扩展这个函数。例如我们想要对一些数字求和,在求和的结果上再加100,那么常用的办法可以这么写: def add(*args): return sum(args) + 100 但是如果我们想要修改固定值100,那么就得改变add这个函数,下面使用partial实现: from functools import partialdef add(*args): return sum(args)add_100 = partial(add, 100)add_200 = partial(add, 200)print(add_100(1, 2, 3)) # 106print(add_200(1, 2, 3)) # 206 可以看到我们使用以原函数add、固定值作为参数,传入parital类,返回了一个新函数,这样在调用新函数时,就不需要再传入固定值了。偏函数接收三个参数,它们可以扩展和覆盖原函数的参数:
 2023-11-01   Python 

Kubernetes基础

k8s 把数量众多的服务器重新抽象为一个统一的资源池,对于运维人员来说,他们面前没有服务器1、服务器2的概念,而是一个统一的资源池,增加新的服务器对运维人员来说,只是增加自资源池的可用量。不仅如此,k8s 把所有能用的东西都抽象成了资源的概念,从而提供了一套更统一,更简洁的管理方式。...
 2022-12-27   kubernetes    Docker  kubernetes 

Django日志配置与告警

1.Django日志配置Django的日志配置主要通过settings.py中LOGGING配置来实现,示例如下: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': '[%(asctime)s] [%(levelname)s] [%(pathname)s:%(lineno)d] [%(module)s:%(funcName)s] \n %(message)s' }, 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(me
 2022-07-20   Python  Django 

Gitlab CI/CD + Docker部署

利用Gitlab的CI/CD功能可以很方便地进行项目的持续集成和部署,我们还可以配合Docker来进一步完善服务器部署。本文介绍了如何使用docker-swarm这个工具来部署一套Django + Mysql + Redis的项目,并且配合Gitlab的CI、CD功能,实现自动部署、滚动更新。...
 2022-05-21   CI/CD    Docker  CI/CD 

Gitlab CI/CD配置

Gitlab有自带的CI/CD功能,只需要在项目根目录新建一个.gitlab-ci.yml文件,推送到仓库中,即可创建一个pipeline,并通过注册好的runner部署、运行项目...
 2021-10-27   CI/CD    CI/CD  Git 

Jenkins + Gitlab + Django实现持续集成

基于ubuntu18.04搭建一套持续集成、部署的系统,在本地推送(push)代码到Gitlab后,通过Gitlab的webhook触发Jenkins任务,自动拉取代码并部署到生产服务器运行。 1. Jenkins搭建 查看是否安装了java java -version 如果没有安装java,则执行下面的命令安装 sudo apt-get install openjdk-8-jre 配置java环境变量,在/etc/profile中添加以下内容: #set jdk environment export JAVA_HOME=/usr/lib/jvm/Java-8-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 使配置文件生效 source /etc/profile 安装Jenkins wget -q -O - https://
 2021-03-26   CI/CD    CI/CD  Jenkins 

使用Supervisor部署Django项目

supervisor是一个python开发的、通用的进程监控、管理工具,可以将一个普通的命令行进程变为后台daemon,并且监控进程状态,异常自动重启。相较于nohup的方式,这种部署方式使用起来更方便简洁,并且运行也更稳定。...
 2020-12-22   Python    Django  supervisor 

docker-compose启动Mysql和Redis

本文介绍了如何使用Docker快速在本地部署一套Mysql + Redis...
 2020-12-21   Docker    Docker 

Git简介及常用操作

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,本文介绍了Git的一些基本概念及常用操作。...
 2020-02-20   Git    Git 
12

Search


 总访问量 次   总访客数 人