c#web定时任务

转自:http://www.programbbs.com/doc/3003.htm 另外可参考http://developer.51cto.com/art/200909/149829.htm

想在Web中定时 处理某些任务吧?
可以在Global.asax 中定义,直接上例子:

< script runat = " server " >
    
void  Application_Start( object  sender, EventArgs e) 
    {
       
       
//  应用程序启动时
       System.Timers.Timer timer  =  new  System.Timers.Timer();
       DateTime sTime 
=  DateTime.Now;
       
int  sHour  =  sTime.Hour;
       
int  sMin  =  sTime.Minute;
       
int  sSecond  =  sTime.Second;
       
int  sHourInterval  =  15  -  sHour;
       
int  sSecondInterval  =  sHourInterval  *  60  *  60  *  1000 ;
       
// timer.Interval = 1000*5; // 5秒发送一次
       timer.Interval  =  sSecondInterval;
       
// timer.AutoReset;
       timer.Elapsed  +=  new  System.Timers.ElapsedEventHandler(timer_Elapsed);
       timer.Enabled 
=  true ;

    }
    
void  timer_Elapsed( object  sender, System.Timers.ElapsedEventArgs e)
    {
        
string  s_from  =  " fengsheng@xxx.com " ;
        
string  s_to  =  " fengsheng@xxx.com " ;
        
string  pwd  =  " 1234567 " ;
        
string  s_body  =  " test " ;
        
string  s_smtp  =  " mail.xxx.com " ;
        
int  i  =  s_from.IndexOf( " @ " );
        
string  s_subjetc  =  " test " ;
        
string  username  =  s_from.Substring( 0 , i);
        System.Net.Mail.MailAddress from 
=  new  System.Net.Mail.MailAddress(s_from);
        System.Net.Mail.MailAddress to 
=  new  System.Net.Mail.MailAddress(s_to);
        System.Net.Mail.MailMessage mailobj 
=  new  System.Net.Mail.MailMessage(from, to);
        mailobj.Subject 
=  s_subjetc;
        mailobj.Body 
=  s_body;

        mailobj.IsBodyHtml 
=  true ;
        mailobj.BodyEncoding 
=  System.Text.Encoding.GetEncoding( " GB2312 " );
        mailobj.Priority 
=  System.Net.Mail.MailPriority.High;
        System.Net.Mail.SmtpClient smtp 
=  new  System.Net.Mail.SmtpClient();
        smtp.Host 
=  s_smtp;
        smtp.UseDefaultCredentials 
=  true ;
        smtp.Credentials 
=  new  System.Net.NetworkCredential(username, pwd);
        smtp.Send(mailobj);
    }
</ script >

上面 是一个定时发邮件的小例子,建议最好是把需要启动的事项 做成 web Service 这样 应用范围会更广

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# Quartz是一个强大、开源、轻量的作业调度框架,可以用于定时执行任务。具体而言,你可以将要定时执行的任务代码写到实现了IJob接口的Execute方法中,当时间到达后,任务会自动执行。 以下是创建和执行C# Quartz定时任务的步骤: 1. 创建一个调度单元,可以使用StdSchedulerFactory类的GetDefaultScheduler方法来获取默认调度器。 2. 创建一个具体的作业(job),这个作业需要实现IJob接口,并且将任务代码写在其Execute方法中。 3. 创建并配置一个触发器(trigger),定义任务的执行时间。可以使用TriggerBuilder类的Create方法来创建触发器,并使用WithCronSchedule方法来指定任务的执行时间表达式。 4. 将作业和触发器加入到作业调度池中,使用调度器的ScheduleJob方法。 5. 开启调度器,使用调度器的Start方法。 下面是一个示例代码,展示了如何使用C# Quartz进行定时任务的创建和执行: ```csharp public class ScheduleManage { public static void Show() { // 创建调度单元 Task<IScheduler> tsk = StdSchedulerFactory.GetDefaultScheduler(); IScheduler scheduler = tsk.Result; // 创建一个具体的作业 IJobDetail job = JobBuilder.Create<SendMessageJob>() .WithIdentity("完成") .Build(); // 创建并配置一个触发器 ITrigger _CronTrigger = TriggerBuilder.Create() .WithIdentity("定时确认") .WithCronSchedule("0/2 * * * * ?") // 每2秒执行一次 .Build() as ITrigger; // 将作业和触发器加入到作业调度池中 scheduler.ScheduleJob(job, _CronTrigger); // 开启调度 scheduler.Start(); Console.ReadLine(); } } ``` 请注意,以上代码仅为示例,实际使用时需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值