2012-06-08 33 views
-2

我想在我的项目中实现一个调度程序。我的目标是实施ETL过程。 这意味着在每天结束的时候我都想从我的数据库中读取数据,然后创建一个XML文件并将其上传到某个远程系统。 对于实施,我完成了除计划之外的所有过程。C#Job Scheduler

如果有人知道请帮我下面的事情。

  1. 添加一个新类来处理调度
  2. 如何使用定时器在C#创建调度(如何添加和使用)
  3. 如何调用该计时器在指定的时间十一时四十五分(23.45 )

请提供一些示例代码

在此先感谢...

+0

过于宽泛或只是要求源代码的通常问题不是很好的问题。幸运的是[如何改进](http://stackoverflow.com/questions/how-to-ask)。 –

+0

为什么不在数据库管理系统中使用内置的数据导出功能?我确信所有的DBMS都有这种通过工作建立起来的东西。 –

回答

0

由于你想每天运行它,并且因为你没有认为程序需要一直运行(例如,通过WCF服务与应用程序进行通信),我建议你让你的应用程序从Windows调度器启动。

+0

@ downvoter:谨慎评论你为什么downvoted? – citronas

1

我在控制台应用程序中尝试了一些简单的作业调度。

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using Quartz; 
    using Quartz.Impl; 
    using Quartz.Job; 
    using System.Windows; 
    namespace WindowsTrainingTasks 
    { 
     public partial class Schedulerexample : Window 
     { 
      public Schedulerexample() 
      { 
       InitializeComponent(); 
       ISchedulerFactory schedFact = new StdSchedulerFactory(); 
       IScheduler quartzScheduler = schedFact.GetScheduler(); 
       IJobDetail job = JobBuilder.Create<HelloJob>() 
        .WithIdentity("HelloJob", "group1") 
        .Build(); 
       ITrigger trigger = TriggerBuilder.Create() 
       .WithIdentity("DAMMetadataSyncTrigger") 
       .StartNow() 
       .WithSimpleSchedule(x => x 
       .WithIntervalInSeconds(5) 
       .RepeatForever()) 
       .Build(); 
       quartzScheduler.ScheduleJob(job, trigger); 
       quartzScheduler.Start(); 
      } 
     } 
     public class HelloJob : IJob 
     { 
      public void Execute(IJobExecutionContext context) 
      { 
       MessageBox.Show("Xenovex Technologies", "Xenovex5"); 
      } 
     } 
    } 
相关问题