抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

腾讯云上购买了一个新的轻量级服务器,于是乎需要重新搭建一下环境,特此记录

安装git

执行命令:yum install git

设置secret_token

原因:在Github的Webhook机制中设置secret_token来提高安全系数

  1. 将如下内容写到~/.bash_profile中:(注意修改SECRET_TOKEN为自己的token)
    1
    echo "export SECRET_TOKEN=自己在Github设置的Token" >> ~/.bash_profile
  2. 然后执行命令:source ~/.bash_profile

设置接收webhook的程序

我们需要有一个程序作为后台进程一直在监听Github发生过来的事件

  1. 直接编译代码为可执行程序后,直接放置到~/workspace目录下

  2. ~/workspace目录下创建conf目录并编写配置文件config.ini,内容如下:

    1
    2
    3
    4
    5
    6
    [server]
    host='0.0.0.0'
    port=8999

    [script]
    auto_update_script_path='./auto_update_script.sh'

准备

购买腾讯云轻量级服务器的时候需要选择Docker ce

安装docker-compose

  1. 安装docker-compose并验证
    1
    2
    3
    4
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    docker-compose version

准备环境

  1. 云服务器1台
  2. 服务器需要安装python3以上的环境,默认服务器都会安装
  3. 服务器中需要安装flask:pip3 install flask进行安装即可

具体流程步骤

  1. 仓库中设置webhook
    • payload url填写需要请求服务器的url,这里我们在服务器中部署了一个简单的flask程序,地址是 服务器的ip:flask监听端口
    • 配置Content Type为application/json
    • 配置secret,找个在线生成密码的网站,生成64位密码保存填写进入,并在服务器中通过在~/.bash_profile文件最后写入export SECRET_TOKEN=生成的64位密码将其添加到环境变量中
    • 选择通知类型为:Just the push event
    • 勾选active
  2. 根据仓库webhook中设置的secret,需要导入到服务器的环境变量中,
  3. 服务器中编写如下的python代码并后台运行,记得设置的端口一定要在防火墙中进行放行

这个BFPRT算法找逻辑Bug找了两天

注意点:

  1. 在找中位数的时候对传入的数组进行排序,这里使用直接插入排序,因为元素个数最多为5,插排常数项极低
    1. 注意:这里不是nums[j] > nums[i]而是for j = i - 1; j >= start && nums[j] > temp; j--,因为后面会对nums[i]造成修改
  2. 找中位数数组的中位数medianOfMedians返回的是最终的中位数的值,我们使用这个值进行Partition,自己这里还一直将其当做返回的索引用,导致越界
  3. BFPRT函数调用自己的时候,参数一定要对应,自己在写的时候直接将k传入了start