把任务队列 delayed 移植到 Go 了
2023 3 24 05:22 PM 0 条评论 202 次查看
目前的 delayed 实现是用 pickle 来做序列化的,其实之前也写过用 JSON 来做序列化的版本,但是遇到了几个问题:
- JSON 会丢失一些对象类型,例如无法区分 tuple 和 list。
- JSON 无法直接编码二进制字符串(bytes)。
- JSON 不支持原本 pickle 能支持的很多类型。
をつあおにまで GFW!
2023 3 24 05:22 PM 0 条评论 202 次查看
2022 11 3 04:43 PM 1 条评论 326 次查看
分类:无 标签:无
2022 11 1 06:49 PM 0 条评论 258 次查看
2022 10 31 04:36 PM 0 条评论 218 次查看
2022 10 26 12:35 PM 0 条评论 228 次查看
sync.(*Map).Store()
抛了个异常,日志如下:fatal error: sync: unlock of unlocked mutex
goroutine 63756060 [running]:
runtime.throw({0xbeeca9, 0xb45120})
#011/usr/local/go/src/runtime/panic.go:1198 +0x71 fp=0xc0010f13a0 sp=0xc0010f1370 pc=0x4336d1
sync.throw({0xbeeca9, 0xb2dd40})
#011/usr/local/go/src/runtime/panic.go:1184 +0x1e fp=0xc0010f13c0 sp=0xc0010f13a0 pc=0x45ecfe
sync.(*Mutex).unlockSlow(0x11d45a0, 0xffffffff)
#011/usr/local/go/src/sync/mutex.go:196 +0x3c fp=0xc0010f13e8 sp=0xc0010f13c0 pc=0x47851c
sync.(*Mutex).Unlock(...)
#011/usr/local/go/src/sync/mutex.go:190
sync.(*Map).Store(0x11d45a0, {0xae4960, 0xc0012f4350}, {0xae40e0, 0xc000026078})
#011/usr/local/go/src/sync/map.go:163 +0x465 fp=0xc0010f1480 sp=0xc0010f13e8 pc=0x476fa5
要知道这可是 Go 的官方库,sync.Map
可是专门为并发安全而设计的,难道直接调用它的接口也会出现线程冲突?2022 9 11 06:19 PM 2 条评论 289 次查看
2022 9 11 01:36 PM 1 条评论 534 次查看
分类:无 标签:无
/etc/hosts
后,curl 报 35 错误(SSL connect error. The SSL handshaking failed.),openssl 可以正常连接 443 端口,但带了 -servername
参数后失败。/etc/hosts
后,用 HTTP 可以访问。2021 4 17 06:09 PM 0 条评论 461 次查看
functools.cache
的源码时发现参数列表有个诡异的 /
:def cache(user_function, /):
'Simple lightweight unbounded cache. Sometimes called "memoize".'
return lru_cache(maxsize=None)(user_function)
翻了下文档才发现这个叫 Positional-Only Parameters。2020 12 1 01:44 PM 2 条评论 557 次查看
docker build
过的镜像,另一台机器上却需要重新构建,没法利用缓存。docker build
还能使用外部缓存来加速构建。2020 5 9 06:20 PM 0 条评论 659 次查看