系统中对工单管理,如果提交后22小时没有处理,就自动发信息给受理人。我的想法是:在SQL SERVER中写一个存储过程,用SQL server中的作业,每隔1分钟执行这个存储过程,吧满足条件的工单和用户数据存放到一个表中。然后在用一个后台程序每1分钟读这个表一次,并发送消息给受理人。这个表中设置一个标识,标识这条工单是否已经发送了短信提醒。发过了就不在发了。现在的问题是:
1:SQL SERVER会一直向这个表插入数据,每扫描一次,都会有重复的。重复了无法插入到这个表有没问题?是不是要捕获这个异常?或者用其他办法?
2:这个扫描表的后台程序能不能和我的WEB程序关联起来,也就是不想做成一个exe,要自己手动去执行开始,我想这个后台程序能在网站启动的时候启动。死掉后可以重新启动。请大家帮忙。

解决方案 »

  1.   

    在应用根目录下面新建一个Global.asax文件,在Application_Start中一个timer定时器进行操作<%@ Application Language="C#" %><script RunAt="server">    void Application_Start(object sender, EventArgs e)
        {
            // 在应用程序启动时运行的代码
            System.Timers.Timer myTimer = new System.Timers.Timer(60000); //每一分钟进行一次检查
            myTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
            myTimer.Interval = 60000;
            myTimer.Enabled = true;
        } private static void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
        {//这里进行你要的处理
    }
      

  2.   

    我调试的时候OK了。然后关掉调试的也可以继续执行。如果是部署到系统上,要怎么才能让他开始工作?。才转到ASP.NET,对Application_Start在什么时候运行,如何触发他运行还不熟悉!