2012-01-16 18 views
4

Quartz.Netを使用してタスクをスケジュールしています。私は賢明なように試みました。コンソールアプリケーションでQuartz.netを使用するにはどうすればいいですか?

ビジュアルスタジオコンソールアプリケーションを起動し、Quartz.dllとCommon.Logging.dllという2つの参照をSystem.Web.Servicesとともに追加しました。

は、私はリンクhttp://simplequartzschedulerincsharp.blogspot.com/ に提供される(彼らはその作業と主張している)通常のタスクのために少しコード化された

しかし、すぐに私はそれが不足している参照」などのエラーを与えたプログラムを実行しようとしたとして、 Quartz.allに "私はこれを既に追加しました。

これはなぜ発生していますか?

はまたどこかで私は1つの必要性は、それを使用するためにQuartz.Server.Serviceをインストールすることに注意などなど

私を導いてくださいと私が行方不明ですが、シンプル実施例との点を指示してください?

+0

は*バグを「Quartz.allへの参照が見つからない」から.ALLあるかミスタイプ? :) –

+0

@RăzvanPanda:そのようなすべてのものがうまくいきます。コーディング....iがQuartz.dllを追加しましたが、(F5を使用して)実行しようとすると停止し、 "Namespance Quartzが見つかりません。 "? – ItsLockedOut

答えて

10

サイトの例が古くなっている可能性があります。

私が使用されるクラスにいくつかの変更を作り、今では動作します:

using System; 
using Quartz; 
using Quartz.Impl; 
using Quartz.Impl.Triggers; 
// Necessary references: 
// Quartz dll 
// Common.Logging 
// System.Web 
// System.Web.Services 

namespace QuartzExample 
{ 
    class Program 
    { 
     private static IScheduler _scheduler; 

     static void Main(string[] args) 
     { 
      ISchedulerFactory schedulerFactory = new StdSchedulerFactory(); 
      _scheduler = schedulerFactory.GetScheduler(); 
      _scheduler.Start(); 
      Console.WriteLine("Starting Scheduler"); 

      AddJob(); 
     } 

     public static void AddJob() 
     { 
      IMyJob myJob = new MyJob(); //This Constructor needs to be parameterless 
      JobDetailImpl jobDetail = new JobDetailImpl("Job1", "Group1", myJob.GetType()); 
      CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "Group1", "0 * 8-17 * * ?"); //run every minute between the hours of 8am and 5pm 
      _scheduler.ScheduleJob(jobDetail, trigger); 
      DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc(); 
      Console.WriteLine("Next Fire Time:" + nextFireTime.Value); 
     } 
    } 

    internal class MyJob : IMyJob 
    { 
     public void Execute(IJobExecutionContext context) 
     { 
      Console.WriteLine("In MyJob class"); 
      DoMoreWork(); 
     } 

     public void DoMoreWork() 
     { 
      Console.WriteLine("Do More Work"); 
     } 
    } 

    internal interface IMyJob : IJob 
    { 
    } 
} 
+0

トリガーのルールはどこにありますか? –

+0

@ Johnny_D:[チュートリアル](http://quartznet.sourceforge.net/tutorial/index.html)でその情報を見つけることができると思います。 [ソースコード](http://sourceforge.net/projects/quartznet/files/quartznet/)をダウンロードすると、興味深いタスクの設定例が見つかります。 hth –

関連する問題