|M| 第三贴:如何在ASP.NET 中创建和删除SQL作业:大家来看看我的需求要怎么做
当用户下订单的时候
要求这一订单的时间加上2天的时候
如果后台没有确认这一订单的话
就删除这条订单
像这样的需求要来怎么做
-------------------------
高歌说:这件事是数据库管理的事,让程序去做并不合适..
但不在数据库中在程序中要怎么来实现呢
------解决方案--------------------你这个就是定时处理的问题,典型的解决办法可以参考CS中的 Job & Timer
http://ugoer.cnblogs.com/archive/2005/09/13/236028.html
------解决方案--------------------先说你的标题 “ASP.NET 中创建和删除SQL作业”
这个确实是 SQL作业 程序没必要去处理
据我所知SQL的作业 不会去处理数据吧!
所以 你的问题 和你的标题 没关系 不是一回事。。
你的意思后台没有确认信息 要自动处理吗
我是这个想法:
1、写一个CS的程序来控制了
2、过一段时间 手动来维护一下可以通过程序来判断删除
------解决方案--------------------可以写个window服务
------解决方案--------------------sibyle(先知),作业可以处理数据
------解决方案--------------------首先调用Jobs,实例化一个Jobs类,这个类在CS中有且只有一个实例。之后调用Jobs中的Start()方法。Jobs为了确保系统的安全,在开始之前先调用Stop(),现释放之前为Job实例化的非托管资源(其实就是调用Timer与Job下面的Dispose方法,这也是为什么Job要实现IDispose接口的原因,是想一下,如果前一次定义的定时器没有被释放,然后又接着实例化一个,然后这样多重复几次...哈哈,你的CS就会有N个线程在跑,服务器很快就会挂掉的)。
释放完资源后(无论有没有CS都会这么做),接着就会实例化每个实现了IJob的类,根据上述的配置文件定义一个Timer或者让每个Job都定义一个自己的Timer(这就相当于给钟点工统一一个工作时间或者给每个钟点工都规定一个工作时间,规定完后该干什么的就干去吧,只要时间到了就得干活)。再往下,就自己分析吧,也就没有什么难题了…
------解决方案--------------------xtra6714(赚钱,生存) ( ) 信誉:100 Blog 加为好友 2007-05-24 23:00:45 得分: 0
sibyle(先知),作业可以处理数据
-----------------------
哦 学习了 SQL作业 可以运行存储过程
可以写在存储过程 里面执行 不就行了吗
------解决方案--------------------没确认的订单把它删除掉!你不做生意了?
------解决方案--------------------我以前都是用windows服务做的
倒是如果只有这个需求,可以考虑用job
------解决方案--------------------void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
System.Timers.Timer tm = new System.Timers.Timer();
tm.Interval = 3000;
tm.Enabled = true;
tm.Elapsed += new System.Timers.ElapsedEventHandler(tm_Elapsed);
}
void tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//你的代码
}