web-dev-qa-db-ja.com

Quartz.netのシンプルで実用的な例

コンソールアプリケーション用のQuartz.netの実用的な簡単な例を探しています(十分に単純である限り、他のアプリケーションでもかまいません...)。そして、私がそこにいる間、IJobDetail、ITriggerなどの実装を回避するのに役立つラッパーはありますか。

13
Tomer

あなたとまったく同じ観察をした人がいて、彼はQuartz.netコンソールアプリケーションの簡単な実例を含むブログ投稿を公開しています。

以下は、Quartz.net 2.0(最新)に対して構築されたQuartz.netの動作例です。このジョブは、5秒ごとにコンソールに「HelloJobisexecute」というテキストメッセージを書き込みます。

Visual Studio2012プロジェクトを開始します。 Windows Console Applicationを選択します。名前を付けるQuartz1または好きな名前を付けます。

要件NuGetを使用してQuartz.NETアセンブリをダウンロードします。プロジェクトを右クリックし、「Nugetパッケージの管理」を選択します。次に、Quartz.NETを検索します。見つかったら、選択してインストールします。

using System;
using System.Collections.Generic;
using Quartz;
using Quartz.Impl;

namespace Quartz1
{
    class Program
    {
        static void Main(string[] args)
        {
        // construct a scheduler factory
        ISchedulerFactory schedFact = new StdSchedulerFactory();

        // get a scheduler, start the schedular before triggers or anything else
        IScheduler sched = schedFact.GetScheduler();
        sched.Start();

        // create job
        IJobDetail job = JobBuilder.Create<SimpleJob>()
                .WithIdentity("job1", "group1")
                .Build();

        // create trigger
        ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever())
            .Build();

        // Schedule the job using the job and trigger 
        sched.ScheduleJob(job, trigger);

        }
    }

    /// <summary>
    /// SimpleJOb is just a class that implements IJOB interface. It implements just one method, Execute method
    /// </summary>
    public class SimpleJob : IJob
    {
        void IJob.Execute(IJobExecutionContext context)
        {
        //throw new NotImplementedException();
        Console.WriteLine("Hello, JOb executed");
        }
    }
} 

ソース

19

ドキュメントとソースコードのサンプルの間には、始めるのに十分なはずです。カスタムジョブを作成するときに実装する必要がある唯一のインターフェイスはIJobです。他のすべてのインターフェイスはすでに実装されているか、quartz.netでの基本的な使用には必要ありません。

jobBuilderおよびTriggerBuilderヘルパーオブジェクトを使用するためのジョブとトリガーを構築します。

0
Jason Meckley