作者文章归档:xiaxichensblog

caddy源码分析


跟阿里云社区合作的第二门公益系列课开始啦。 主要是介绍caddy源码和生命周期文件解析等等; 让大家对caddy这个服务器有更深刻理解。 想从python转go,或者对caddy感兴趣的同学们可以扫二维码进群观看哈。

67eqUS.jpg

Read more

leetCode每日一题 91


“”“
91. 解码方法
一条包含字母 A-Z 的消息通过以下映射进行了 编码 :

'A' -> 1
'B' -> 2
...
'Z' -> 26
要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为:

"AAJF" ,将消息分组为 (1 1 10 6)
"KJF" ,将消息分组为 (11 10 6)
注意,消息不能分组为  (1 11 06) ,因为 "06" 不能映射为 "F" ,这是由于 "6" 和 "06" 在映射中并不等价。

给你一个只含数字的 非空 字符串 s ,请计算并返回 解码 方法的

Read more

leetCode每日一题 26


"""
26. 删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。



说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入

Read more

leetCode每日一题 1


"""
1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。



示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:

输入:nums = [3,3],

Read more

leetCode每日一题 27


"""
27. 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。



说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(num

Read more

分布式调度系统


distributedSchedulingTaskSystem

分布式调度系统

架构图

架构.png

主集群功能

任务管理HTTP接口:增删改查
任务日志HTTP接口:查看任务执行历史
任务控制HTTP接口:提供强制结束任务的接口

woker集群功能

任务同步:监听etcd中/cron/jobs/目录变化
任务调度:基于cron表达式计算,触发过期任务
任务执行:协程池并发执行多任务,基于etcdf分布式锁抢占
日志保存:捕获任务执行输出,保存到MongoDB

web页面

masterWeb.png

master实现

masterWeb.png

worker实现

masterWeb.png

启动

首先启动etcd集群(单机也可)和mongo;
其次配置master/main下的配置

Read more

jinjia 基础语法


for in

{% for i in list %}
{% endfor %}
{% for k,v in dict.items() %}
{% endfor %}

if else

{% if i=1 %}
    {{ i }}
{% elif i!=1 %}
    {{ i }}
{% else %}
    {{ i }}
{% endif %}

with

{% with data %} 
{% endwith %}

url_for

<form class="form-inline" action="{{ url_for('web.search') }}" method="get

Read more