我想做个定时触发系统事件的功能
如题,想做一个能定时触发系统事件的功能。
比如,OA系统,我要系统在凌晨00:00的时候,系统自动检测我今天有没有吃饭(⊙o⊙)…
我查了一下相关的资料
timer 控件
//载入窗口的时候
//设个变量T=当前时间
//打开定时器并设定周期一秒,并使定时器工作。
private void button1_Click(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
设个变量T1=当前时间
如果T1与T差整好一小时
{
T1=T
button1_Click(button1, null);
}
}
这个方法是写在页面的,那实现我这个功能的话,我的timer事件应该放在哪里啊?还有这个方法好吗?那系统岂不是每隔一秒都要去匹配时间?系统的压力岂不是很大?这才一个timer,如果多个timer这样做的话系统会不会奔溃?菜鸟啊,求前辈指点思路!!!没有接触过这个东西
[解决办法]
做成系统服务,或者写一个程序添加到操作系统计划任务中。
[解决办法]
你这个应该是跟数据库有联系的吧 你可以直接写在数据库的事务中,添加一个定时任务
[解决办法]
定时触发你的程序,直接用系统自带的计划任务就行了啊
[解决办法]
最简单的就是写控制台程序跑你的业务逻辑,然后定时执行的话直接放到操作系统的任务计划里面让它定时跑。
或者做成后台服务,定时执行。
[解决办法]
假设你一小时之后触发事件就可以,那么为什么还要一秒钟去判断一次?
asp.net应用随时会停止。因此这类开发根本不是asp.net程序员该想的事情。
[解决办法]
先是asp.net 新建一个webservice 里面是逻辑处理..
然后 用数据库 新建作业 半夜12点 执行存储过程 存储过程里调用webservice
结贴
[解决办法]
System.Threading.Timer
System.Timers.Timer
System.Windows.Forms.Timer
System.Web.UI.Timer
[解决办法]
还是1楼的更靠谱,要么写一个windows service,安装在服务器上,24小时运行,但是没有界面。要么写一个小的客户端程序来定时触发。不知还有没有其他好的方法
[解决办法]
写成一个winform程序,最小化托盘,再加上timer控件,可以实现。asp.net这样做不太好。
[解决办法]
假设你一小时之后触发事件就可以,那么为什么还要一秒钟去判断一次?
asp.net应用随时会停止。因此这类开发根本不是asp.net程序员该想的事情。
额 大哥 您的意思是说 asp.net 不该使用这样的逻辑吗?有点不太明白啊
asp.net的GC有可能会把Timer开的线程当垃圾回收掉的
[解决办法]
要么做成windows 服务,要么就做一个exe程序,配合windows计划任务就行了
[解决办法]
方法很多啊
如果你只是写数据库的操作的话,可以直接在数据库里加一条事物让他定时执行
如果需要程序辅助的话,就单独写一个windows service,或者写一个控制台程序加在计划任务里
想直接写在asp.net里也是可以的,在globel里开一个线程一直sleep到0点。但如果0点前一直没人访问就有可能会被回收掉
[解决办法]
windows有自带的任务计划,写个程序然后到时候自动调用运行就行了
[解决办法]
直接写个windows服务,时间参数放到从xml里面读取,这样修改起来也是妥妥滴