【问题标题】:C# Job SchedulerC# 作业调度程序
【发布时间】:2012-06-08 05:39:42
【问题描述】:

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

如果有人知道,请帮我做以下事情。

  1. 添加一个用于处理调度的新类
  2. 如何在c#中使用定时器创建调度器(如何添加和使用)
  3. 如何在指定时间 11.45 PM(23.45) 调用该计时器

请提供一些示例代码

提前谢谢...

【问题讨论】:

  • 通常过于宽泛或只是要求源代码的问题都不是很好的问题。幸运的是有advice on how to improve
  • 为什么不直接使用 DBMS 中的内置数据导出功能?我敢肯定,所有 DBMS 都通过作业内置了这种东西。

标签: c# scheduled-tasks


【解决方案1】:

您可能想看看Quartz.net - http://quartznet.sourceforge.net/

【讨论】:

  • +1。这是一个复杂的主题,Quartz.Net 是唯一可用的库。
【解决方案2】:

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

    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");
            }
        }
    }

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-03
      • 2010-11-19
      相关资源
      最近更新 更多