面试官问单机上一个线程池正在处理服务如果忽然断电该怎么办?

2018-02-12 17:14:23 +08:00
 esolve

单机上一个线程池正在处理服务如果忽然断电该怎么办?(正在处理和阻塞队列里的请求怎么处理)?

这问题怎么回答?

5108 次点击
所在节点    问与答
5 条回复
whatsmyip
2018-02-12 20:42:12 +08:00
感觉跟数据库差不多吧

就是没处理到的消息丢失了无所谓,已经处理的消息必须持久化(日志)
forestyuan
2018-02-12 20:57:09 +08:00
一般的应用就不用考虑停电了吧,关键性的应用就给电脑配个 UPS
gamexg
2018-02-12 22:16:56 +08:00
正在处理的实现事务功能,下次自动回滚。
队列实现持久化储存,下次启动自动载入。
但是实际需要看情况,大体思路是这样。
agostop
2018-02-13 11:34:54 +08:00
添加标志位,未处理 0,处理中 1,已处理 2
每次启动的时候,把所有状态为 1 的,置为 0
esolve
2018-02-13 13:27:28 +08:00
@gamexg 事务功能在断电时是什么反应?能自动保存当前状况然后等重启时自动回滚?
持久化用啥? redis ?日志?数据库?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/430453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX