sduoduo233 最近的时间轴更新
sduoduo233

sduoduo233

V2EX 第 581797 号会员,加入于 2022-05-16 10:37:26 +08:00
今日活跃度排名 7939
sduoduo233 最近回复了
45 分钟前
回复了 vx7298 创建的主题 Ubuntu ubuntu 一如既往的优秀!
我最近换 Fedora 了,感觉 Fedora gnome 的 bug 比 Ubuntu 少...
16 天前
回复了 coolrequest 创建的主题 云计算 有哪些厂商在大陆访问比较快?
v.ps dmit.io bandwagonhost 有 cn2 不过都是小厂
16 天前
回复了 coolrequest 创建的主题 云计算 有哪些厂商在大陆访问比较快?
aws
24 天前
回复了 abigmiu 创建的主题 问与答 js 逆向问题求助
移动云电脑不是 10G 的吗,有没有去试试的🐶
手机端的开始测试按钮在屏幕外面 +1
可以用另外一台服务器反代 worker🤣
感谢各位老哥的回复

看了一下感觉 1 楼的方法是最简单的,总结一下就是这几个 SQL

CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
time_left INTEGER DEFAULT(0), 剩余时长 单位是秒
paused INTEGER,
resume_time INTEGER 上一次恢复计时的时间戳
)

剩余 60 秒的时长
INSERT INTO users (time_left, paused, resume_time) VALUES (60, TRUE, 0)

恢复
UPDATE users SET paused = FALSE, resume_time = unixepoch() WHERE id = 1

暂停
UPDATE users SET paused = TRUE, time_left = time_left - (unixepoch() - resume_time) WHERE id = 1

定时任务 更新未暂停用户的剩余时间
UPDATE users SET time_left = time_left - (unixepoch() - resume_time), resume_time = unixepoch() WHERE paused = FALSE

9 楼的应该也是差不多的思路
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5450 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 08:01 · PVG 16:01 · LAX 01:01 · JFK 04:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.