那些比你走得远的人,并不比你聪慧,只是每天多走了一点。坚持,是最强大的力量。

简介

cron一个用于管理定时任务的库,用 Go 实现 Linux 中crontab这个命令的效果。之前我们也介绍过一个类似的 Go 库——grongron代码小巧,用于学习是比较好的。但是它功能相对简单些,并且已经不维护了。如果有定时任务需求,还是建议使用cron

阅读全文 »

前言

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一,能够支持高达 50,000 个并发连接数的响应。

Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP 代理服务 对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。那对于Nginx的相应配置,当集群出现某些问题的时候,参数会起到相当重要的作用,但是大家也知道,包括官网在内,很多的参数配置都是用英文进行讲解,今天就给大家整理一些配置中文详解

阅读全文 »

1. WSL2 子系统安装使用

WLS2 需要 Windows 10 Version 2004 Build 19041 或更高版本,使用 Windows Update 自动更新到2004版本。如果没有检测到更新,可以去微软官网下载 易升 工具并安装运行。工具会检测到更新并安装。

如果需要使用 Docker for Windows,需要下载 WLS Updata 补丁并安装。

1.1 启用Linux子系统

打开 控制面板 -> 程序 -> 启用或关闭Windows功能。找到 适用于Linux的Windows子系统虚拟机平台,勾选这两项之后确定,并重新启动计算机。

也可以通过命令行启用,以管理员身份打开 PowerShell,输入如下命令,并 重启电脑

1
2
3
4
# 开启 虚拟机平台 可选组件
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
# 开启 适用于Linux的Windows子系统 可选组件
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
阅读全文 »

不知道你是否发现,身边聊异步的人越来越多了,比如:FastAPI、Tornado、Sanic、Django 3、aiohttp等。
听说异步如何如何牛逼?性能如何吊炸天。。。。但他到底是咋回事呢?

本节要跟大家一起聊聊关于asyncio异步的那些事!
asyncio讲解教程:https://study.163.com/instructor/3525856.htm
博客园同步:https://www.cnblogs.com/wupeiqi/

1.协程

想学asyncio,得先了解协程,协程是根本呀!
协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。例如:

1
2
3
4
5
6
7
8
9
10
def func1():
print(1)
...
print(2)
def func2():
print(3)
...
print(4)
func1()
func2()
阅读全文 »

Python中字符串对象提供了很多方法来操作字符串,功能相当丰富。必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础。目前一共有45个方法,给大家分类整理,可以收藏查询使用。

1
2
3
4
5
6
7
8
9
# 获取字所有的符串方法
print(dir(str))
[...,'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha',
'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric',
'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower',
'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust',
'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith',
'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

一、大小写转换

01、capitalize()

描述:将字符串的第一个字母变成大写,其余字母变为小写。

语法:str.capitalize()

示例:

1
2
3
4
5
"i Love python".capitalize() 
'I love python'

"i Love pYthoN".capitalize()
'I love python'
阅读全文 »

Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。

很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。

海象运算符是在 PEP 572 被提出的,直到 3.8 版本合入发布。

它的英文原名叫 Assignment Expressions,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了。

阅读全文 »

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。

但你要知道,在团队合作里,炫技是大忌。

为什么这么说呢?我说下自己的看法:

  1. 越简洁的代码,越清晰的逻辑,就越不容易出错;
  2. 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德
  3. 简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)

该篇是「炫技系列」的第二篇内容,在这个系列里,我将总结盘点一下,我所见过的那些炫技操作。在这里,如果你是 Python 发烧友,你可以学到一些写出超酷的代码书写技巧。同时,看了这些内容,对你在阅读别人的代码时,也许会有些帮助。

阅读全文 »

有的人说 Python 是一门 入门容易,但是精通难的语言,这一点我非常赞同。

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。

但你要知道,在团队合作里,炫技是大忌。

为什么这么说呢?我说下自己的看法:

  1. 越简洁的代码,越清晰的逻辑,就越不容易出错;
  2. 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德
  3. 简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)

在这个系列里,我将总结列举一下,我所见过的那些炫技操作,今天先来个热身,写一写很简单的条件判断语句里有哪些让人想骂街的炫技操作,在这里,如果你是 Python 发烧友,你可以学到一些写出超酷的代码书写技巧,但学习归学习,希望你区分场景使用。

阅读全文 »

第一步. 取容器的日志路径

1
2
3
4
docker inspect fr2 | grep LogPath
"LogPath": "/var/lib/docker/containers/
b03099af97b289629f00e677ab58a740699b7c982b470d589ecdcbf52cd4e674/b03099af97b289629f00e677
ab58a740699b7c982b470d589ecdcbf52cd4e674-json.log",

第二步.进入VM

1
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

第三步.清空日志文件

1
2
true > /var/lib/docker/containers/b03099af97b289629f00e677ab58a740699b7c982b470d589ecdcbf52cd4e6
74/b03099af97b289629f00e677ab58a740699b7c982b470d589ecdcbf52cd4e674-json.log