我想知道如何处理掉电情况。函数应该只发送一次具有相同id的事件,但是可以使用相同的id多次调用它(例如在系统重新启动后)。 Id可以存储在数据库中(例如leveldb)。这是一种天真的方法,它不能处理掉电情况:
void T::fun(int id, Event ev)
{
if(lastId.get() != id)
{
trigger->send(ev);
//power down - ev has been sent but id is not saved.
lastId.set(id);
}
}
如何处理可能的断电情况?