Meet At Oct.

How to be loved?

原地打转,羡慕着别人摆脱了单身狗的生活。

也许这世上有一种命中注定,某年某月某日,遇到某个人,从此倦旅江湖。

不知,那个人是错过了还是迟到了。

Published on 11/11/2017 18:36:07

个人博客的自动构建与部署

最近对自己的博客做了些小的修改,部署的时候需要登录到服务器拉取代码后进行构建部署等操作,由于有些命令有些长,我不太能记得住,翻找历史命令时都觉得自己很傻比。一开始想着把命令都记到一个文本里面,下次就直接复制,再细想,不如此彻底一点,做成自动构建和部署,这样下次把修改代码提交到GitHub后,直接点击一个按钮就轻轻松松部署成功了。

首先是梳理一个自动构建部署流程。在构建服务器上获取源代码并进行构建,将构建后的代码发送到目标服务器,在目标服务器上执行脚本进行部署。过程中使用Jenkins作为自动化工具;构建与部署都在docker容器内进行,尽量做到与服务器环境无关;使用ssh来执行远程脚本,使用scp将构建后的代码上传到目标服务器。具体脚本,请查阅build.sh

具体过程中踩过的一些的坑:

  1. 需要将Jenkins用户加入docker组中,不然Jenkins没有执行docker的权限

  2. 开启ssh互信时,直接复制粘贴公钥到目标服务器authorized_keys文件中仍然有可能提示未认证,可以使用ssh-copy-id命令来发送,具体请看这里

  3. 需要在Jenkins用户下开启ssh互信,在centos7下切换Jenkins用户时需要注意Jenkins用户可能是禁止登陆装填,请自行查看并修改/etc/passwd文件

其实遇到的这些问题解决起来都比较很简单,但是如何定位到问题所在却没那么简单,尤其是在错误提示不明显的情况下。对于不熟悉Linux的人来说(比如我),更是需要查许多资料,每次都会觉得自己好蠢,orz。

由于偷懒,自动化测试和回滚部分就略去了。

更多内容 »

Published on 09/27/2017 05:02:01

一些琐碎的记录(2)

前段时间需要在项目里面做一个小的定时任务,搜索一遍,找到一个简易的包,其内部是用Threading.Timer来实现的。使用过程中发现了一个问题,NET452里面Threading.Timer有个long延迟时间和时间间隔参数的构造函数,但实际操作时发现,当传的参数大于int32最大值时,会报错参数必须小于 2^32-2。这个应该是.NETFramework的bug,在NetStandard中已经没有了long参数的构造函数。

第二个问题还是和这个定时任务有关。定时任务上线后,业务方反应定时任务有时执行,有时不执行。在ASP.NET中大家都知道,IIS应用程序池回收后,程序会停止直到有新的请求时才会重新启动。但是在ASP.NET Core中,最早了解的一个知识点就是.Net Core程序不寄宿在IIS的工作进程中,IIS只是作为一个反向代理。这句话对也不对,IIS确实是为.Net Core程序提供反向代理服务,但并不仅仅只是反向代理,通过AspNetCoreModule,IIS同时也能管理.Net Core程序的生命周期。

参考资料:

More-on-ASPNET-Core-Running-under-IIS

Published on 09/08/2017 09:06:21

系统设计:任务调度中心

关键点

  • 任务配置同步

    • 监听同步zookeeper节点变化
    • 节点的变化映射job的变化(对比节点历史数据快照)
  • 分布式

    • zookeeper单一锁实现
  • 任务执行

    • quartz.net定时执行(请求配置任务地址)
    • 认证(token||IP白名单||认证中心)

更多内容 »

Published on 08/23/2017 07:39:29

一些琐碎的记录

本周有些空闲时间,就将项目的.net core sdk升级至1.1.2,为之后全部采用vs2017开发做好准备,主要还是制作docker的发布镜像,由于之前有了些经验,这次相对来说还是比较顺利的。在升级过程中我才算彻底明白了什么叫做面向stack overflow编程哈哈。遇到好多问题都是Google关键词,找找看有没有stack overflow相关的链接或者github的issue。不知道以后公司能不能为.net开发也配台Mac,想想还是有点小激动。

最近工作时,每当发现一些小的细节或知识点,都想先记下来等有空时再去研究研究,结果不是忘了就是懒得去找文档或翻源码最后放弃了,没有那么大的动力去自我驱动着学习。再加上沉迷于steam+1,天气又热得死人,还是再过段时间吧,到时候在回归学习模式。上个月脑子一热,去看了一下opencv,接着又没下文了,就和Python一样,都是觉得新奇,随便玩玩。也不知道这样算好还是不好。

工作上,最近在推前后端分离。说实话,以前自己写前端又写后端,心情不好的时候真是边碎碎念边写代码。公司也还在扩招,希望可以早点不写前端代码。

先这样吧,再见。

Published on 08/23/2017 07:38:45