Quartzチュートリアル-クイックスタート
6308 ワード
quartzクイック入門チュートリアルへようこそ.このチュートリアルを読むと、次のことがわかります. quartzダウンロード quartz取付 必要に応じてQuartz を構成します.は、例示的なアプリケーション を開始する.
quartzスケジューリングの基本機能を熟知した後、Whereなどのより高度な特性を試してみることができます.このエンタープライズ機能は、jobとtriggerをランダムなTerracottaクライアントではなく指定されたもので実行することができます.
まず、最新の安定版をダウンロードします.登録しなくてもいいです.解凍してインストールします.
quartzインストールパッケージルートディレクトリのlib/ディレクトリの下にはjarパッケージがたくさんあります.そのうち、quartz-xxx.JAr(xxxはバージョン番号)が最も主要です.quartzを使用するには、jarパケットをアプリケーションのclasspathの下に置く必要があります.
ダウンロード後、解凍してquartz-xxx.JArはあなたのアプリケーションに入れます.
私は主にアプリケーションサーバの環境でquartzを使用しているので、一般的にquartz jarパッケージをアプリケーションに入れます(.earまたは.war).もちろん、多くのアプリケーションでquartzを使用したい場合は、quartzのjarパッケージをアプリケーションサーバ(appserver)のclasspathの下に置けばいいです.独立したアプリケーションでquartzを使用したい場合は、quartzのjarパッケージとアプリケーションに依存する他のjarパッケージを一緒に置くだけでいいです.
quzrtzは、quartzインストールパッケージの
アプリケーションサーバ環境では、同じjarファイルに2つの異なるバージョンがある場合、奇妙な結果が発生する可能性があります.例えば、WebLogicはservletと共にJ 2 EEの実装(weblogic.jar)を含む.JArの実装は一致しない可能性があります.この場合、servletはアプリケーションから除外する必要があります.jar、これでどのクラスが使われているかがわかります.
quartzはquartzという名前を使用する.propertiesのプロファイル.最初は必須ではありませんでしたが、最も基本的な構成を使用するにはclasspathの下にある必要があります.
私の個人的な状況に基づいて例を挙げて、私の応用はWebLogic Workshopに基づいて開発されました.quartz.propertiesを含むすべてのプロファイルをアプリケーション・ルートの下のプロジェクトに配置します.プロジェクトをパッケージ化するとearファイルの場合、プロファイルを配置する項目はjarパッケージとして最終的に入ります.だからバッグだpropertiesファイルはclasspathに自動的に配置されます.
quartzを使用したWebアプリケーションを構築する準備ができている場合は、quartz.propertiesファイルはWEB-INF/classesディレクトリの下に置きます.
ここには多くの内容が含まれています.quartzは構成が柔軟なアプリケーションです.quartzを構成する最善の方法は、quartzを編集することです.propertiesファイルをアプリケーションのclasspathの下に置きます.
quartzのインストールパッケージには、example/ディレクトリの下にあるプロファイルの例が含まれています.自分のquartzを作成することをお勧めします.propertiesファイルは、単純に例から不要な部分をコピーして削除するのではなく、コピーします.これにより、より清潔に見え、quartzのより多くの機能も理解できます.
quartzプロファイルの詳細については、Quartzプロファイルリファレンスを参照してください.
quartzを使うために、基本的なquartzです.propertiesプロファイルは次のとおりです.
上記構成のschedulerには、次のような特徴があります. org.quartz.scheduler.instanceName-schedulerの名前は「MyScheduler」 です. org.quartz.threadPool.threadCount-スレッドプールには3つのスレッドがあり、つまり最大3つのjobを同時に実行することができる. org.quartz.jobStore.class-quartzのjobとtriggerの構成を含むすべてのデータは、データベースではなくメモリに格納されます.quartzのデータベースストレージ機能を使用する場合は、データベースストレージを使用する前に、メモリストレージ(RamJobStore)を使用することをお勧めします.
quartzをダウンロードしてインストールした後、サンプルアプリケーションを開発し、走らせる時だ.次のサンプルコードは、schedulerインスタンスオブジェクトを取得し、起動して閉じます.
QuartzTest.java
StdSchedulerFactoryを呼び出すとgetDefaultScheduler()schedulerインスタンスオブジェクトを取得し、schedulerを呼び出す.shutdown()の前にschedulerは終了しません.アクティブなスレッドが実行されているからです.
注意サンプルコードの静的インポート(static import)は、次のコードでも使用されます.
ログ出力を構成していない場合は、次のようなすべてのログがコンソールに出力されます.
start()とshutdown()の間で面白いことをすることができます.
shutdown()を呼び出す前に、jobのトリガと実行に時間を残す必要があります.例えば、Threadを呼び出すことができます.sleep(60000)はスレッドをしばらく眠らせた.
さあ、自分で探しに行きましょう.原文リンク このシリーズのチュートリアルはquartz-2.2.x公式ドキュメントの翻訳、整理から来て、同じquartzに興味のある友达にいくつかの参考と助けを望んで、いかなる不当あるいは間違いがあって、指摘を歓迎します;ソースコードの研究に興味のある方は、quartz-coreソースコードの注釈(進行中)を参考にしてください.
quartzスケジューリングの基本機能を熟知した後、Whereなどのより高度な特性を試してみることができます.このエンタープライズ機能は、jobとtriggerをランダムなTerracottaクライアントではなく指定されたもので実行することができます.
ダウンロードとインストール
まず、最新の安定版をダウンロードします.登録しなくてもいいです.解凍してインストールします.
Quartz jarファイル
quartzインストールパッケージルートディレクトリのlib/ディレクトリの下にはjarパッケージがたくさんあります.そのうち、quartz-xxx.JAr(xxxはバージョン番号)が最も主要です.quartzを使用するには、jarパケットをアプリケーションのclasspathの下に置く必要があります.
ダウンロード後、解凍してquartz-xxx.JArはあなたのアプリケーションに入れます.
私は主にアプリケーションサーバの環境でquartzを使用しているので、一般的にquartz jarパッケージをアプリケーションに入れます(.earまたは.war).もちろん、多くのアプリケーションでquartzを使用したい場合は、quartzのjarパッケージをアプリケーションサーバ(appserver)のclasspathの下に置けばいいです.独立したアプリケーションでquartzを使用したい場合は、quartzのjarパッケージとアプリケーションに依存する他のjarパッケージを一緒に置くだけでいいです.
quzrtzは、quartzインストールパッケージの
lib
ディレクトリの下にあるサードパーティ製ライブラリ(jarパッケージの形式)に依存します.quartzのすべての機能を使用するには、すべてのサードパーティjarパッケージをclasspathの下に置く必要があります.独立したquartzアプリケーションを開発している場合は、すべてのjarパッケージをclasspathの下に置くことをお勧めします.アプリケーションサーバ環境でquartzを使用する場合は、classpathにすでに存在するパッケージがある可能性がありますので、自分で選択する必要があります.アプリケーションサーバ環境では、同じjarファイルに2つの異なるバージョンがある場合、奇妙な結果が発生する可能性があります.例えば、WebLogicはservletと共にJ 2 EEの実装(weblogic.jar)を含む.JArの実装は一致しない可能性があります.この場合、servletはアプリケーションから除外する必要があります.jar、これでどのクラスが使われているかがわかります.
propertiesファイル
quartzはquartzという名前を使用する.propertiesのプロファイル.最初は必須ではありませんでしたが、最も基本的な構成を使用するにはclasspathの下にある必要があります.
私の個人的な状況に基づいて例を挙げて、私の応用はWebLogic Workshopに基づいて開発されました.quartz.propertiesを含むすべてのプロファイルをアプリケーション・ルートの下のプロジェクトに配置します.プロジェクトをパッケージ化するとearファイルの場合、プロファイルを配置する項目はjarパッケージとして最終的に入ります.だからバッグだpropertiesファイルはclasspathに自動的に配置されます.
quartzを使用したWebアプリケーションを構築する準備ができている場合は、quartz.propertiesファイルはWEB-INF/classesディレクトリの下に置きます.
コンフィギュレーション
ここには多くの内容が含まれています.quartzは構成が柔軟なアプリケーションです.quartzを構成する最善の方法は、quartzを編集することです.propertiesファイルをアプリケーションのclasspathの下に置きます.
quartzのインストールパッケージには、example/ディレクトリの下にあるプロファイルの例が含まれています.自分のquartzを作成することをお勧めします.propertiesファイルは、単純に例から不要な部分をコピーして削除するのではなく、コピーします.これにより、より清潔に見え、quartzのより多くの機能も理解できます.
quartzプロファイルの詳細については、Quartzプロファイルリファレンスを参照してください.
quartzを使うために、基本的なquartzです.propertiesプロファイルは次のとおりです.
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
上記構成のschedulerには、次のような特徴があります.
適用例
quartzをダウンロードしてインストールした後、サンプルアプリケーションを開発し、走らせる時だ.次のサンプルコードは、schedulerインスタンスオブジェクトを取得し、起動して閉じます.
QuartzTest.java
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
public class QuartzTest {
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}
StdSchedulerFactoryを呼び出すとgetDefaultScheduler()schedulerインスタンスオブジェクトを取得し、schedulerを呼び出す.shutdown()の前にschedulerは終了しません.アクティブなスレッドが実行されているからです.
注意サンプルコードの静的インポート(static import)は、次のコードでも使用されます.
ログ出力を構成していない場合は、次のようなすべてのログがコンソールに出力されます.
[INFO] 21 Jan 08:46:27.857 AM main [org.quartz.core.QuartzScheduler]
Quartz Scheduler v.2.0.0-SNAPSHOT created.
[INFO] 21 Jan 08:46:27.859 AM main [org.quartz.simpl.RAMJobStore]
RAMJobStore initialized.
[INFO] 21 Jan 08:46:27.865 AM main [org.quartz.core.QuartzScheduler]
Scheduler meta-data: Quartz Scheduler (v2.0.0) 'Scheduler' with instanceId 'NON_CLUSTERED'
Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
NOT STARTED.
Currently in standby mode.
Number of jobs executed: 0
Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 50 threads.
Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
[INFO] 21 Jan 08:46:27.865 AM main [org.quartz.impl.StdSchedulerFactory]
Quartz scheduler 'Scheduler' initialized from default resource file in Quartz package: 'quartz.properties'
[INFO] 21 Jan 08:46:27.866 AM main [org.quartz.impl.StdSchedulerFactory]
Quartz scheduler version: 2.0.0
[INFO] 21 Jan 08:46:27.866 AM main [org.quartz.core.QuartzScheduler]
Scheduler Scheduler_$_NON_CLUSTERED started.
[INFO] 21 Jan 08:46:27.866 AM main [org.quartz.core.QuartzScheduler]
Scheduler Scheduler_$_NON_CLUSTERED shutting down.
[INFO] 21 Jan 08:46:27.866 AM main [org.quartz.core.QuartzScheduler]
Scheduler Scheduler_$_NON_CLUSTERED paused.
[INFO] 21 Jan 08:46:27.867 AM main [org.quartz.core.QuartzScheduler]
Scheduler Scheduler_$_NON_CLUSTERED shutdown complete.
start()とshutdown()の間で面白いことをすることができます.
// define the job and tie it to our HelloJob class
JobDetail job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
// Trigger the job to run now, and then repeat every 40 seconds
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(40)
.repeatForever())
.build();
// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);
shutdown()を呼び出す前に、jobのトリガと実行に時間を残す必要があります.例えば、Threadを呼び出すことができます.sleep(60000)はスレッドをしばらく眠らせた.
さあ、自分で探しに行きましょう.