定时刷新参数
来源:互联网 发布:php serialize json 编辑:程序博客网 时间:2024/05/29 13:26
最近做一个需求,需要程序不停止的情况下,定时刷新配置参数。
先做个timer类:
typedef boost::function0<bool> TaskFunc;class Timer{public: Timer(boost::asio::io_service& ios); virtual ~Timer(); void schedule(TaskFunc task, boost::posix_time::ptime trigger_time, boost::posix_time::time_duration duration = boost::posix_time::seconds(0)); void cancel();private: void handle_timeout(const boost::system::error_code& ec); boost::asio::deadline_timer timer_; boost::posix_time::ptime trigger_time_; boost::posix_time::time_duration duration_; TaskFunc task_;};typedef boost::shared_ptr<Timer> TimerPtr;
</pre><pre class="cpp" name="code" style="white-space: pre-wrap; word-wrap: break-word; width: 994.640625px; font-size: 14px; line-height: 23.3240013122559px;">
然后最外层,根据刷新时间,<span style="font-family: Arial, Helvetica, sans-serif;">调用dataMgr的readconfig来创建一个独立线程读取配置文件:</span>:
int refresh_minutes = config.get("refresh_minutes", (int) 60);Timer timer(io_service);boost::posix_time::ptime trigger_time(now.date(), boost::posix_time::time_duration(hh, mm, 0));if (trigger_time < now)<span style="white-space: pre;"></span>trigger_time += boost::posix_time::minutes(<span style="font-family: Arial, Helvetica, sans-serif;">refresh_minutes</span>);timer.schedule(boost::bind(&DataMgr::ReadIpConfig, &DataMgr::instance()), trigger_time, boost::posix_time::minutes(<span style="font-family: Arial, Helvetica, sans-serif;">refresh_minutes</span>));bool DataMgr::ReadIpConfig()
{
try
{
boost::thread thr(boost::bind(&DataMgr::ReadIpConfigFromXML, this));
}
catch (const char* msg)
{
LOG4CPLUS_WARN(logger, msg);
return false;
}
return true;
}
bool DataMgr::ReadIpConfigFromXML()
{
boost::mutex::scoped_lock lock(loading_, boost::try_to_lock_t());
//read conf
return true;
}
0 0
- 定时刷新参数
- 定时刷新
- 定时刷新
- 定时刷新
- 定时刷新
- 定时刷新
- 定时刷新同一个链接传递不同的参数
- 页面定时刷新
- js定时刷新页面
- 页面定时刷新
- 定时刷新的方法
- web页面定时刷新
- 定时刷新页面
- 页面定时刷新
- HTML定时刷新网页
- 页面定时刷新javascript
- 定时刷新页面
- AlarmManager之定时刷新
- 医院门诊管理系统
- OpenCV膨胀和腐蚀示例代码
- 【leetcode】Intersection of Two Arrays
- 用Python爬虫抓取煎蛋(jandan.net)无聊图和妹子图
- 设计模式学习笔记1
- 定时刷新参数
- java内存泄漏
- JAVA学习笔记三之(1)键盘录入数据
- Java中的多继承
- pp看书笔记---设计模式之禅第二版 第三章【依赖倒置原则】
- poj 3259 Wormholes spfa判断负环 解题报告
- 流量测试三个工具
- Spark中组件Mllib的学习16之分布式行矩阵的四种形式
- 手把手教你用Python爬虫煎蛋妹纸海量图片