我想在我的项目中实现调度程序。我的目标是实现 ETL 流程。这意味着在一天结束时,我想从我的数据库中读取今天的数据,然后创建一个 XML 文件并将其上传到某个远程系统。对于实施,我完成了除调度之外的所有过程。
如果有人知道,请帮我做以下事情。
- 添加一个新的类来处理调度
- c#中如何使用定时器创建调度器(如何添加和使用)
- 如何在指定时间 11.45 PM(23.45) 调用该计时器
请提供一些示例代码
提前致谢...
我想在我的项目中实现调度程序。我的目标是实现 ETL 流程。这意味着在一天结束时,我想从我的数据库中读取今天的数据,然后创建一个 XML 文件并将其上传到某个远程系统。对于实施,我完成了除调度之外的所有过程。
如果有人知道,请帮我做以下事情。
请提供一些示例代码
提前致谢...
你可能想看看Quartz.net
- http://quartznet.sourceforge.net/
我在控制台应用程序中尝试了一些简单的作业调度。
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");
}
}
}
由于您希望每天运行它并且因为您没有争论该程序需要一直运行(例如通过 WCF 服务与应用程序通信),我建议您让您的应用程序从 Windows 调度程序启动。