去年写的阿里云函数计算是直接用 WSGI 接口撸的,最近引入 flask 框架重构了。但是重构并在本地测试通过后,放到云上遇到了问题。函数计算会对 url 中存在非 ascii 字符的情况报错。

阅读全文 »

服务器上跑的程序出错了想及时收到通知?对于这类业务报警/消息推送,一般的方法是使用邮件。但是邮箱配置起来较为麻烦,对于懒得配置邮箱或是嫌邮件送达率不高的程序员,微信看起来是一个更好的进行提醒推送的通道。

市面上已经有 Server 酱 或是 WxPusher 这类解决方案,利用微信服务号的模板消息进行消息推送。但很可惜,这两者都不开源,使用也有些限制,同时UI也无法自定义。对于喜欢折腾的程序员,当然是选择轮子造起来~

下面是博主搭建好的结果示意和开源库地址:
开源库 wechat-push

示意图

使用

遵循 RESTful 风格的代码,发送消息只需要一个请求:

1
2
3
4
5
6
7
POST https://domain.com/message
{
receiver: openid,
title: title,
body: optional, markdown msg,
url: optional, url at end of the body
}

获取自己的 openid,访问页面 https://domain.com/ 并扫码即可。

阅读全文 »

Cockpit 是一个开源 linux 软件,官网的介绍是“为你服务器准备的易用的、集成的、可扫视的、开放的网络界面”。通过 cockpit,我们可以通过网络进行(多台)服务器的管理,如审查用量、重启服务、查看 docker 等操作,省去了一些 ssh 操作。

cockpit界面

阅读全文 »

对于一个想要长期在后台跑的服务,比如一个 web server,一般有这几种方法:

  • 使用 nohup + &
  • 做成一个 service,使用 sudo service <servicename> <command> 控制
  • 自行实现 daemon
  • 利用 screen 软件,放到一个 screen 里面跑

第一个方法实用性太差;第二个和第三个在能处理好日志时不错,但是其维护起来较为麻烦;最后一个方法是笔者以前常用的方法。

supervisor 是用 python 编写的程序,其能够将非 daemon 程序放到后台运行并监控,还能做到检测到程序挂掉时重新拉起。它使用了 client/server 架构,因此提供了 web UI 以便远程控制(其实有坑)。

web UI

阅读全文 »

经常写 Python 异步代码的人可能都知道,当前 Python 版本(3.7.4-)中,,当一个 coro 被取消时,会抛出 CancelledError,而这个 CancelledError 定义为:

1
2
3
# asyncio/exceptions.py
class CancelledError(concurrent.futures.CancelledError):
"""The Future or Task was cancelled."""
阅读全文 »

Hexo 的 NexT 原来的主题是极简的黑白配色,一眼看上去还可以,但是看久了不免会有些视觉疲倦。如果想修改 hexo NexT 主题的配色应该怎么做呢?我在网上找到了一篇相关的文章

这个文章中的修改方法的原理是修改.styl文件(Stylus语法)中的几个大的定义。按照这个方法虽然可以修改,但是会将其他部分的颜色也一起修改了,有没有更好的、更细粒度的方法呢?

阅读全文 »
0%