社区
进程/线程/DLL
帖子详情
不使用定时检测,如何得知配置文件被修改
antonyhome
2005-09-29 11:20:30
背景:
应用程序的配置文件被其它程序修改后,
应用程序需要根据修改重新读取配置信息,
因为不能重启该应用程序,
故只能在配置文件更新后重新读入该文件。
问题:
应用程序如何得知文件被修改?(类似windows文件保护功能)
要求:不使用定时检测,因为定时周期不好设定,太短影响影性能,且无意义(谁闲着没事老是改配置文件呀)。太长不利于及时更新。
...全文
321
8
打赏
收藏
不使用定时检测,如何得知配置文件被修改
背景: 应用程序的配置文件被其它程序修改后, 应用程序需要根据修改重新读取配置信息, 因为不能重启该应用程序, 故只能在配置文件更新后重新读入该文件。 问题: 应用程序如何得知文件被修改?(类似windows文件保护功能) 要求:不使用定时检测,因为定时周期不好设定,太短影响影性能,且无意义(谁闲着没事老是改配置文件呀)。太长不利于及时更新。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rabo
2005-10-04
打赏
举报
回复
建议:
这样的要求,可以在你程序里面实现。
配置里面的值读出来都是要用的,每一次(或者隔n次)使用这个值的时候就读一次做比较。
antonyhome
2005-09-30
打赏
举报
回复
To everandforever(Forever) :
非常感谢!
虽然,还是有设定间隔时间的问题,但目前确实是一种不错的方法。
DentistryDoctor
2005-09-30
打赏
举报
回复
FindFirstChangeNotification不需要时间间隔,由操作系统通知你。
oyljerry
2005-09-30
打赏
举报
回复
这种耗时操作等,开线程来处理比较好
贵子潘
2005-09-30
打赏
举报
回复
就everandforever这个方法,赞
everandforever
2005-09-29
打赏
举报
回复
用一个线程监测
HANDLE dwChangeHandle = FindFirstChangeNotification( _T("..\\cfg\\"), FALSE, FILE_NOTIFY_CHANGE_LAST_WRITE );
if( dwChangeHandle != INVALID_HANDLE_VALUE )
{
for( ; ; )
{
DWORD dwWaitStatus = ::WaitForSingleObject( dwChangeHandle, 1000 );
if( dwWaitStatus == WAIT_TIMEOUT )
{
if(bWaitingForExit)
{
FindCloseChangeNotification( dwChangeHandle );
break;
}
}
else if( dwWaitStatus == WAIT_OBJECT_0 ) // file changed
{
::PostMessage( hMainWnd, WM_FILECHAGNE_NOTIFY, 0, 0 );
if( !FindNextChangeNotification( dwChangeHandle ) )
{
FindCloseChangeNotification( dwChangeHandle );
break;
}
}
else // error
{
FindCloseChangeNotification( dwChangeHandle );
break;
}
}
}
antonyhome
2005-09-29
打赏
举报
回复
To hundlom(托克维尔) :
更改配置文件的程序很多,任何文本编辑工具都可以修改。例如:Notepad、 UtralEdit、WinHex,
Edit ...
hundlom
2005-09-29
打赏
举报
回复
把更改配置文件的程序作为远程线程嵌入应用程序中试试
UP
看谁还有好方法
Quartz
定时
任务
1、掌握Spring自带的
定时
任务 2、学会配置
定时
任务线程池 3、掌握cron表达式,记住口诀:秒分时日月周年 4、学会
使用
Quartz创建
定时
任务、删除
定时
任务、
修改
定时
任务, 灵活配置
定时
任务
Windows Nginx
定时
重启/配置日志(bat 脚本+Windows
定时
任务)
一、实现思路 1、
使用
Windows
定时
任务,
定时
执行bat脚本 2、bat脚本,逐行读取Nginx的
配置文件
,通过匹配字符串的方式,找到日志配置行,
修改
。 3、然后杀完Nginx进程,启动Nginx。就达到了配置日志的目的。 4、不
使用
reload的原因,生效太慢。猜想是因为项目是用的是TCP负载均衡,连接没断完,一直保留旧进程的原因 二、bat脚本 ::关闭输出 @echo off ::
配置文件
的绝对路径 set nginxPath=C:\Users\Administa...
配置文件
log4j2.xml详解
配置文件
log4j2.xml详解log4j2文件结构、完整样例 log4j2文件结构、完整样例 <?xml version="1.0" encoding="UTF-8"?> <!--status:Log4j2内部日志的输出级别,设置为TRACE对学习Log4j2非常有用 --> <!--monitorInterval:
定时
检测
配置文件
的
修改
,有变化则自动重新加载配置,时间单位为秒,最小间隔为5s --> <Configuration status="WARN" mo
linux
检测
文件变动,如何
检测
linux系统重要文件是否被更改的shell脚本
#!/bin/bash#此脚本用于
检测
linux系统重要文件是否被改动,如果改动则用邮件报警#建议用
定时
任务执行此脚本,如每5分钟执行一次,也可
修改
此脚本用于死循环
检测
#Ver:1.0#定义验证文件所在目录FileDir='/var/CheckFile'#获取主机名或自己定义HostName=$(hostname)#定义邮件参数:xmtp地址,发送邮件帐号,发送邮件密码,接收邮件地址,邮件主题,邮...
linux_配置_cron
定时
任务配置
linux_配置_cron
定时
任务配置.md
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章