首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

小弟我想做个定时触发系统事件的功能

2013-08-01 
我想做个定时触发系统事件的功能如题,想做一个能定时触发系统事件的功能。比如,OA系统,我要系统在凌晨00:00

我想做个定时触发系统事件的功能
如题,想做一个能定时触发系统事件的功能。
比如,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这样做的话系统会不会奔溃?菜鸟啊,求前辈指点思路!!!没有接触过这个东西
[解决办法]
做成系统服务,或者写一个程序添加到操作系统计划任务中。
[解决办法]
引用:
如题,想做一个能定时触发系统事件的功能。
比如,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这样做的话系统会不会奔溃?菜鸟啊,求前辈指点思路!!!没有接触过这个东西

你这个应该是跟数据库有联系的吧  你可以直接写在数据库的事务中,添加一个定时任务
[解决办法]
定时触发你的程序,直接用系统自带的计划任务就行了啊
[解决办法]
引用:
Quote: 引用:

做成系统服务,或者写一个程序添加到操作系统计划任务中。

额 斑竹老大  能说的详细点么?系统服务?操作系统计划任务?。。。您是不是叫曹志勇?


最简单的就是写控制台程序跑你的业务逻辑,然后定时执行的话直接放到操作系统的任务计划里面让它定时跑。

或者做成后台服务,定时执行。
[解决办法]
假设你一小时之后触发事件就可以,那么为什么还要一秒钟去判断一次?

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这样做不太好。
[解决办法]
引用:
Quote: 引用:

假设你一小时之后触发事件就可以,那么为什么还要一秒钟去判断一次?

asp.net应用随时会停止。因此这类开发根本不是asp.net程序员该想的事情。

额  大哥 您的意思是说 asp.net 不该使用这样的逻辑吗?有点不太明白啊

asp.net的GC有可能会把Timer开的线程当垃圾回收掉的
[解决办法]
要么做成windows 服务,要么就做一个exe程序,配合windows计划任务就行了


[解决办法]
方法很多啊
如果你只是写数据库的操作的话,可以直接在数据库里加一条事物让他定时执行
如果需要程序辅助的话,就单独写一个windows service,或者写一个控制台程序加在计划任务里

想直接写在asp.net里也是可以的,在globel里开一个线程一直sleep到0点。但如果0点前一直没人访问就有可能会被回收掉
[解决办法]
windows有自带的任务计划,写个程序然后到时候自动调用运行就行了
[解决办法]
直接写个windows服务,时间参数放到从xml里面读取,这样修改起来也是妥妥滴

热点排行