【发布时间】:2010-09-28 23:00:26
【问题描述】:
这是一个非常基本的场景,但我没有找到太多有用的资源。我有一个在 Linux 中运行的 C++ 程序,它进行文件处理。读取行,进行各种转换,将数据写入数据库。某些变量(存储在数据库中)会影响我当前在每次迭代中读取的处理,因为我希望处理尽可能保持最新,但稍微滞后是可以的。但是这些变量很少改变,并且随着时间的推移读取成本很高(每天超过 1000 万行)。我可以将读取间隔到每个 n 次迭代,或者在变量更改时简单地重新启动程序,但这些看起来很hackish。
我想做的是让程序在收到 SIGHUP 时触发重新读取变量。我正在阅读的有关信号处理的所有内容都在谈论 C 信号库,我不确定如何将其与我的程序类联系起来。 Boost 信号库似乎更多的是关于对象间通信而不是处理 OS 信号。
有人可以帮忙吗?看起来这应该非常简单,但我对 C++ 很生疏。
【问题讨论】: