esolve
V2EX  ›  问与答

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

  •  
  •   esolve · Feb 12, 2018 · 5606 views
    This topic created in 3041 days ago, the information mentioned may be changed or developed.

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

    这问题怎么回答?

    5 replies    2018-02-13 13:27:28 +08:00
    whatsmyip
        1
    whatsmyip  
       Feb 12, 2018
    感觉跟数据库差不多吧

    就是没处理到的消息丢失了无所谓,已经处理的消息必须持久化(日志)
    forestyuan
        2
    forestyuan  
       Feb 12, 2018
    一般的应用就不用考虑停电了吧,关键性的应用就给电脑配个 UPS
    gamexg
        3
    gamexg  
       Feb 12, 2018
    正在处理的实现事务功能,下次自动回滚。
    队列实现持久化储存,下次启动自动载入。
    但是实际需要看情况,大体思路是这样。
    agostop
        4
    agostop  
       Feb 13, 2018   ❤️ 1
    添加标志位,未处理 0,处理中 1,已处理 2
    每次启动的时候,把所有状态为 1 的,置为 0
    esolve
        5
    esolve  
    OP
       Feb 13, 2018
    @gamexg 事务功能在断电时是什么反应?能自动保存当前状况然后等重启时自动回滚?
    持久化用啥? redis ?日志?数据库?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1095 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    ♥ Do have faith in what you're doing.