日常生活では、我々は必然的にいくつかの定期的なリマインダタスク、定期的なビジネスロジックの操作にいくつかの場所で使用されます。私はシンプルなアイデアをご紹介しましょう
石英であります
オープンソースの
ジョブスケジューリングフレームワークは
、それが完全にJavaで書かれ、J2SEやJ2EEアプリケーション用に設計されています。それはシンプルさを犠牲にすることなく、大きな柔軟性を提供しています。あなたは仕事の実現のために、単純または複雑なスケジュールを作成するためにそれを使用することができます。
これらの手順を実行します。
1、の定期的なタスクを実行する必要があります。
パブリック クラスQuartzSrvBean { プライベートロガーロガー= LoggerFactory.getLogger(QuartzSrvBean。クラス)、 プライベートPreOrderMonitorService preOrderMonitorService; 公共 無効setPreOrderMonitorService( PreOrderMonitorService preOrderMonitorService){ この .preOrderMonitorService = preOrderMonitorService; } / ** * .....スケジュールされたタスク * / 公共 のボイドExecの(){ // 記録タイミングタスクログ logger.info( "xxxxのスケジュールされたタスクが開始-------------" ); ブール= preOrderMonitorService.execUpdateTask isComplete(NULL ); logger.info( "XXXXスケジュールされたタスクisComplete:" + isComplete); } }
2、輸入依存関係
<依存性> <のgroupId> org.quartzスケジューラ</のgroupId> <たartifactId>石英</たartifactId> <バージョン> 2.2.3 </バージョン> </依存>
3、設定ファイル
<?xmlのバージョン= "1.0"エンコード= "UTF-8"> <豆のxmlns = "http://www.springframework.org/schema/beans" のxmlns:XSI = "http://www.w3.org / 2001 / XMLスキーマ・インスタンス"のxmlns:MVC = "http://www.springframework.org/schema/mvc" のxmlns:コンテキスト = "http://www.springframework.org/schema/context" XSI:のschemaLocation =" http://www.springframework.org/schema/beans ます。http:// www.springframework.org/schema/beans/spring-beans.xsd ます。http:// www.springframework.org/schema/context のhttp:// WWW .springframework.org /スキーマ/コンテキスト/春-context.xsd "> // 増加ジョブ・クラス 、豆の作業 <豆ID =「quartzSrvBean」クラス = "com.xxx.yyy.common.QuartzSrvBean"> <プロパティ名= "preOrderMonitorService" REF = "preOrderMonitorService"> </ property>の </ビーン> // 执行作业的方法(ジョブ) <ビーンID = "JOB2 " クラス =" org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean "> <プロパティ名="対象物体"REF = "quartzSrvBean"> </ property>の //需要定时执行的方法 <プロパティ名= "targetMethod"値="実行"> </ property>の </ビーン> // 工作的トリガ // 简易 <ビーンID =" simpleTrigger " クラス =" org.springframework。scheduling.quartz.SimpleTriggerFactoryBean "> <プロパティ名=" jobDetail」REF = "JOB2" />
scheduling.quartz.SimpleTriggerFactoryBean "> <プロパティ名=" startDelay "値=" 0「/> <! -インスタンス化工場スケジューリングした後、スケジューリングが0に介して実行されます- > <プロパティ名= "repeatInterval"値 = "60000" /> <! - スケジューリング時間ごとに60秒- > </豆> //石英表現コーン <豆ID = "CronTrigger" クラス =「org.springframework。 scheduling.quartz.CronTriggerFactoryBean "> <プロパティ名=" jobDetail "REF =" JOB2 "/> <プロパティ名=" cronExpression "値=" 0 0/1 14 * *「/> < - ?!夜02時スタートから14:59実行ごとに1分に一度まで- > </豆> // 設定コントロールセンター の<beanのクラス = "org.springframework.scheduling.quartz.SchedulerFactoryBean"> <プロパティ名= "トリガー"> <リスト> </リスト> </ property>の </豆> </豆> //解释: <refの豆= "cronTrigger" />
(1)仕事:タスク(仕事)を表し、具体的な内容が実行されます。
(2)は、JobDetail:ジョブは、実行すべきコンテンツスケジューラ実行可能であるだけでJobDetailはまた、プログラムや戦略のスケジューリングを含む、特定の実行可能なスケジューラを表します。
(3)、トリガー:スケジュール設定パラメータの代わりに、とき調整します。
(4)スケジューラ:容器の代わりに、スケジューリング、容器は、スケジューリングJobDetailとトリガ複数の登録されてもよいです。場合は、コンテナをスケジュールすることができるスケジューラとトリガJobDetailの組み合わせ
4、タスクがトリガー設定のタイミングに基づいて行われます。この時間は、私たちが定期的に実行する必要がルール。
クォーツ式をヒントします。http://cron.qqe2.com/
5、どのようにクォーツジョブの実行状況を監視するために:ランニング、一時停止し、待機を?
表(新たな操作ログテーブル)に追加することによって、ログの形で挿入されています。
1)操作:JobListenerリスナーによって実行時に変更するテーブル情報が達成されます。
2)ポーズ:scheduler.pauseTrigger()メソッドは、ジョブ情報テーブルの変更を呼び出します。
3)待機中:新たに追加されたデフォルトの状態に待機ジョブ、ジョブ情報テーブルの変更が、問題が上記で得られたフォームが頻繁にテーブルデータに挿入されることです。