Meet At Oct.

一些琐碎的记录(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

定制简书样式

今天看到贴吧几年前的一个帖子有新回复,是关于Stylish的chrome插件的使用,于是就心血来潮,花了一点时间把简书的样式定制一下。

主要是隐藏不必要的东西,换背景与颜色等等。由于是非专业前端,只好检查元素后暴力替换。有时间把B站也替换一下,哈哈。

结果如下:

image.png

image.png

image.png

image.png

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

迁移博客至docker

由于五一前的这周工作需求不是很多,便趁着这个机会将博客迁移到了docker中,虽说网上docker相关文章有很多,第一次实践的我还是遇到了一些小问题,现在便来总结一下。

在这里我要推荐的是docker_practice,有中英文版本,很多细节知识都有讲到,非常适合入门学习。其次是docker hub,可以其上面寻找自己需要的一些镜像,这样可以有助于自己比较方便地写出自己想要的dockerfile。

我认为docker镜像最主要的好处是可复用,所以制作时需要注意生成镜像的大小,以便于网络传输。以dotnetcore为例,官方有专门的runtime镜像,build镜像,sdk镜像等等,根据自己的实际需求选择恰好满足自己需求的基础镜像就好。同时,dockerfile内能使用一条命令尽量使用一条命令,减少镜像的生成层数和生成时间。docker运行和预期不符时,善于使用docker logs来查看日志,利用好Google能解决许多问题。

下面是博客的dockerfile(本体fork自YuukoBlog,个人只是做了一些微小的修改...), 其中dbdata目录是为了挂载本地的sqllite,防止以后删除容器博客数据丢失。

FROM microsoft/dotnet:latest

RUN mkdir /package \
        && mkdir /dotnetapp

Copy . /package
RUN dotnet restore package/YuukoBlog/src/YuukoBlog/YuukoBlog.csproj \

更多内容 »

Published on 04/29/2017 08:11:00