Juniper Photon 的启发,决定从这个月开始,每月写一篇总结,主要记录分享下过去一个月(2024.10.19~11.18)的产出和思考


过去一个月算是一个比较松弛的状态,全国各地跑了好几个城市,跟几个朋友聊了下近况和准备的事情,也趁着闲暇时间梳理了下之前的一些烂尾项目,把该还的技术债还一还。

- 阅读剩余部分 -

最近在用 LemonSqueezy(lemonsqueezy.com) 做 side project 的收款服务,需要用到 webhook 来处理用户付款后的自动发货流程。

项目后端用的是 Go 语言,gin 框架,截止项目启动的时,没能在 GitHub 上找到 LemonSqueezy 的 webhook SDK,于是就徒手写了个,用了一段时间之后把代码整理了一下开源了。

因为 gin + lemon,于是就取名叫 gin and tonic 了😆

如果刚好你也在用 gin 框架,那么这个库你可以开箱即用:

Gin&Tonic

项目地址:https://github.com/YianAndCode/gintonic

最后祝大家财源滚滚,It's lemon squeezy to make money!

写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到 NGINXphp-fpm 之类的平滑重启是给进程发送 USR2 信号,然后它就会将当前请求处理完再退出。

但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。

- 阅读剩余部分 -

写 PHP CLI 程序的老司机们可能经常会写一些常驻进程,比如消息队列消费者进程,这些进程会一直运行,除非要发版,不然一般不会重启的,所以程序程序是不可能由我们通过 ssh 登录到服务器上通过终端来直接启动的(因为一旦断开 ssh 进程就退出了),常见的做法就是用 systemd 或者 supervisor 来使其成为 守护进程,这样进程就可以一直运行,遇到错误意外退出也能被自动重启。

好学的你可能会思考守护进程到底是怎么实现的?为什么有的程序既可以自己就成为守护进程,又可以通过 systemd 来后台运行?如果不依赖外部,我们的 PHP 程序该怎样变成守护进程呢?

- 阅读剩余部分 -