spring 3では注釈を用いてタスクスケジュールを行う.
9389 ワード
以上の内容はSpring 3.0.5バージョンに基づいて運行しています.参考文献はspring-frame ebook-reference-3.05.pdfです.
spring 3におけるtaskの名前空間.部分的にquartzを置換し、注釈方式をサポートすることができます.しかし、より複雑なタスクスケジュールが使用される場合.それともquartzを使うのがおすすめです.タスクスケジュールにtaskとquartzを使用した方法について、以下において距離を設定します.注釈を用いてスケジュールタスクを実行する .
タスクのインスタンスを作成します.
view plin
copy to clipboard
print
?
*********************************************************************
*
*TestJob.java
*
****の所有、
*法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
*@copyright Copyright:2000-2011
*@creator徐沢宇
*@create-time 2011-6-27午後11:51:16
*@revision$Id:*.
******************************************************************
package comp.alcor.aerie.quartz;
import org.slif 4 j.ロギング;
import org.sf 4 j.ロギングFactory;
import org.springframe ewark.scheduling.annotations.Schduled
import org.springframe ework.stereotype.Service
@サービス
public class TestJob{
/**
*ロガーfor this class
*/
prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
@Schduled(fixedDelay=1000)
public void work()
{
if(logger.isDebugEnbaled){
logger.debug(「work()-start」)/$NON-NLS-1
)
logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
if(logger.isDebugEnbaled){
logger.debug(「work()-end」)/$NON-NLS-1
)
)
)
注意その中の@Schduledラベル
springを設定するApple Contingt.xml
view plin
copy to clipboard
print
?
<beans xmlns=”http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance「
xmlns:context="http://www.springframework.org/schema/context「
xmlns:task="http://www.springframework.org/schema/task「
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/fex
http://www.springframework.org/schema/fex/spring-fex-1.5.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">>
注意:その中にxmlnsが入っています. xmlns:task="http://www.springframework.org/schema/task「です.xsi:schemaLocationに参加する http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd .設定に追加
webアプリケーションを開発したらweb.xmlに入れます.
<listener>org.springframe ewek.web.co.ntxt.context Loader Listener
context起動時に、自動スキャンと装備というスケジュールされたタスクができます.は注釈を使用せず、構成によってタスク をスケジュールする.
タスクのインスタンスを作成
view plin
copy to clipboard
print
?
*********************************************************************
*
*TestJob.java
*
****の所有、
*法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
*@copyright Copyright:2000-2011
*@creator徐沢宇
*@create-time 2011-6-27午後11:51:16
*@revision$Id:*.
******************************************************************
package comp.alcor.aerie.quartz;
import org.slif 4 j.ロギング;
import org.sf 4 j.ロギングFactory;
import org.springframe ewark.scheduling.annotations.Schduled
import org.springframe ework.stereotype.Service
@サービス
public class TestJob{
/**
*ロガーfor this class
*/
prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
public void work()
{
if(logger.isDebugEnbaled){
logger.debug(「work()-start」)/$NON-NLS-1
)
logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
if(logger.isDebugEnbaled){
logger.debug(「work()-end」)/$NON-NLS-1
)
)
)
注意:ここwork方法には@Schduledの注釈がありません.
Application Contect.xmlにスケジュールを入れる
view plin
copy to clipboard
print
?
<task:scheduled-task>
<task:scheduled ref=「testJob」method=「work」cron=「1/3*2-23*?」/>
クローン式
原文の由来は:
http://biaoming.iteye.com/blog/39532
一つのクロン表現は、少なくとも6つ(7つの可能性もある)のスペースで区切られた時間要素があります.
順を追って
秒(0~59)
分(0~59)
時間(0~23)
日(月)(0~31日までですが、あなたの月の日数を考慮してください.)
月(0~11)
日(日)(1~7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
7.年(1970-2099)の各要素は、6のような値、連続区間(9-12)、間隔時間(8-18/4)、リスト(1,3,5)、ワイルドカードであることができます.「月の日付」と「日曜日の日付」の2つの要素が互いに反発するので、どちらに設定しますか?
0 10,14,16*毎日午前10時、午後2時、4時0/30 9-17**? 朝9時から夜5時までの勤務時間は30分0時12分です.WEDは毎週水曜日の昼12時を表しています. 0 12 * * ?" 毎日の昼12時に触発します. "0 15 10 ? * *" 毎日午前10時15分トリガ "0 15 10 * * ?" 毎日午前10時15分トリガ "0 15 10 * * ? *" 毎日午前10時15分トリガ "0 15 10 * * ? 2005" 2005年の毎日午前10時15分トリガ 「0」 * 14 * * ?" 毎日午後2時から午後2時59分までの間に、1分間ごとにトリガします. "0 0/5 14 * * ?" 毎日午後2時から午後2時55分の間に5分間ごとにトリガします. "0 0/5 14,18 * * ?" 毎日午後2時から2時55分の間と午後6時から6時55分の間に5分間ごとにトリガします. "0 0-5 14 * * ?" 毎日午後2時から午後2時5分の間に1分間ずつトリガします. "0 10,44 14 ? 3 WED" 毎年3月の水曜日の午後2時10分と2時44分に触発されます. 「0」 15 10 ? * MON-FRI" 月曜日から金曜日までの午前10時15分トリガ 「0」 15 10 15 * ?" 毎月15日午前10時15分トリガ "0 15 10 L * ?" 毎月最後の日の午前10時15分トリガ "0 15 10 ? * 6 L" 毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6 L 2002-2005" 2002年から2005年までの毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6〓〓3″ 毎月の第三金曜日午前10時15分トリガ
一部のサブ表現は範囲またはリストを含むことができます.
例えば、サブ表現(日(日)は「MON-FRI」、「MON,WED,FRI」、「MON-WED,SAT」とすることができます.
「*」の文字はすべての可能な値を表します.
したがって、「*」は毎月の意味をサブ表現(月)に表し、「*」はサブ表現(日(日)に曜日を表します.
「/」の文字は、数値の増分を指定します.例えば、サブ表現(分)の「0/15」は、0分目から15分ごとに開始されます. サブ表現(分)の「3/20」は、3分目から20分(3,23,43)ごとの意味が同じです.「?」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.2つのサブ表現のうちの1つに値が指定されていないことを示しています.衝突を避けるためには、他のサブ表現の値を設定する必要があります.「?」 「L」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.単語「last」の略語ですが、2つのサブ表現では意味が違います.1ヶ月の最後の日を表します.「L」は1週間の最後の日を表します.つまり、SATは「L」の場合、1ヶ月の最後の日を表します.具体的な内容がある前に、「6 L」は今月の最後から6日目を意味します.「FRIL」は今月の金曜日を表します.「L」パラメータを使う時はリストや範囲を指定しないでください.これは問題になります.
フィールド 許容値 許可された特殊文字
spring 3におけるtaskの名前空間.部分的にquartzを置換し、注釈方式をサポートすることができます.しかし、より複雑なタスクスケジュールが使用される場合.それともquartzを使うのがおすすめです.タスクスケジュールにtaskとquartzを使用した方法について、以下において距離を設定します.
タスクのインスタンスを作成します.
view plin
copy to clipboard
?
*********************************************************************
*
*TestJob.java
*
****の所有、
*法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
*@copyright Copyright:2000-2011
*@creator徐沢宇
*@create-time 2011-6-27午後11:51:16
*@revision$Id:*.
******************************************************************
package comp.alcor.aerie.quartz;
import org.slif 4 j.ロギング;
import org.sf 4 j.ロギングFactory;
import org.springframe ewark.scheduling.annotations.Schduled
import org.springframe ework.stereotype.Service
@サービス
public class TestJob{
/**
*ロガーfor this class
*/
prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
@Schduled(fixedDelay=1000)
public void work()
{
if(logger.isDebugEnbaled){
logger.debug(「work()-start」)/$NON-NLS-1
)
logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
if(logger.isDebugEnbaled){
logger.debug(「work()-end」)/$NON-NLS-1
)
)
)
注意その中の@Schduledラベル
springを設定するApple Contingt.xml
view plin
copy to clipboard
?
<beans xmlns=”http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance「
xmlns:context="http://www.springframework.org/schema/context「
xmlns:task="http://www.springframework.org/schema/task「
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/fex
http://www.springframework.org/schema/fex/spring-fex-1.5.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">>
注意:その中にxmlnsが入っています. xmlns:task="http://www.springframework.org/schema/task「です.xsi:schemaLocationに参加する http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd .設定に追加
webアプリケーションを開発したらweb.xmlに入れます.
<listener>
context起動時に、自動スキャンと装備というスケジュールされたタスクができます.
タスクのインスタンスを作成
view plin
copy to clipboard
?
*********************************************************************
*
*TestJob.java
*
****の所有、
*法律の保護を受けて、いかなる会社や個人も、授権なしに無断でコピーしてはいけません.
*@copyright Copyright:2000-2011
*@creator徐沢宇
*@create-time 2011-6-27午後11:51:16
*@revision$Id:*.
******************************************************************
package comp.alcor.aerie.quartz;
import org.slif 4 j.ロギング;
import org.sf 4 j.ロギングFactory;
import org.springframe ewark.scheduling.annotations.Schduled
import org.springframe ework.stereotype.Service
@サービス
public class TestJob{
/**
*ロガーfor this class
*/
prvate static final Loggar logger=ロギングFactory.get Logger(TestJob.class)
public void work()
{
if(logger.isDebugEnbaled){
logger.debug(「work()-start」)/$NON-NLS-1
)
logger.info(「Spring QuartzのTestJobタスクが呼び出されました!」)
if(logger.isDebugEnbaled){
logger.debug(「work()-end」)/$NON-NLS-1
)
)
)
注意:ここwork方法には@Schduledの注釈がありません.
Application Contect.xmlにスケジュールを入れる
view plin
copy to clipboard
?
<task:scheduled-task>
<task:scheduled ref=「testJob」method=「work」cron=「1/3*2-23*?」/>
クローン式
原文の由来は:
http://biaoming.iteye.com/blog/39532
一つのクロン表現は、少なくとも6つ(7つの可能性もある)のスペースで区切られた時間要素があります.
順を追って
秒(0~59)
分(0~59)
時間(0~23)
日(月)(0~31日までですが、あなたの月の日数を考慮してください.)
月(0~11)
日(日)(1~7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
7.年(1970-2099)の各要素は、6のような値、連続区間(9-12)、間隔時間(8-18/4)、リスト(1,3,5)、ワイルドカードであることができます.「月の日付」と「日曜日の日付」の2つの要素が互いに反発するので、どちらに設定しますか?
0 10,14,16*毎日午前10時、午後2時、4時0/30 9-17**? 朝9時から夜5時までの勤務時間は30分0時12分です.WEDは毎週水曜日の昼12時を表しています. 0 12 * * ?" 毎日の昼12時に触発します. "0 15 10 ? * *" 毎日午前10時15分トリガ "0 15 10 * * ?" 毎日午前10時15分トリガ "0 15 10 * * ? *" 毎日午前10時15分トリガ "0 15 10 * * ? 2005" 2005年の毎日午前10時15分トリガ 「0」 * 14 * * ?" 毎日午後2時から午後2時59分までの間に、1分間ごとにトリガします. "0 0/5 14 * * ?" 毎日午後2時から午後2時55分の間に5分間ごとにトリガします. "0 0/5 14,18 * * ?" 毎日午後2時から2時55分の間と午後6時から6時55分の間に5分間ごとにトリガします. "0 0-5 14 * * ?" 毎日午後2時から午後2時5分の間に1分間ずつトリガします. "0 10,44 14 ? 3 WED" 毎年3月の水曜日の午後2時10分と2時44分に触発されます. 「0」 15 10 ? * MON-FRI" 月曜日から金曜日までの午前10時15分トリガ 「0」 15 10 15 * ?" 毎月15日午前10時15分トリガ "0 15 10 L * ?" 毎月最後の日の午前10時15分トリガ "0 15 10 ? * 6 L" 毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6 L 2002-2005" 2002年から2005年までの毎月最後の金曜日の午前10時15分にトリガします. 「0」 15 10 ? * 6〓〓3″ 毎月の第三金曜日午前10時15分トリガ
一部のサブ表現は範囲またはリストを含むことができます.
例えば、サブ表現(日(日)は「MON-FRI」、「MON,WED,FRI」、「MON-WED,SAT」とすることができます.
「*」の文字はすべての可能な値を表します.
したがって、「*」は毎月の意味をサブ表現(月)に表し、「*」はサブ表現(日(日)に曜日を表します.
「/」の文字は、数値の増分を指定します.例えば、サブ表現(分)の「0/15」は、0分目から15分ごとに開始されます. サブ表現(分)の「3/20」は、3分目から20分(3,23,43)ごとの意味が同じです.「?」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.2つのサブ表現のうちの1つに値が指定されていないことを示しています.衝突を避けるためには、他のサブ表現の値を設定する必要があります.「?」 「L」の文字は、日(月)と日(日)の2つのサブ表現にのみ使用されます.単語「last」の略語ですが、2つのサブ表現では意味が違います.1ヶ月の最後の日を表します.「L」は1週間の最後の日を表します.つまり、SATは「L」の場合、1ヶ月の最後の日を表します.具体的な内容がある前に、「6 L」は今月の最後から6日目を意味します.「FRIL」は今月の金曜日を表します.「L」パラメータを使う時はリストや範囲を指定しないでください.これは問題になります.
フィールド 許容値 許可された特殊文字
0-59
, - * /
0-59
, - * /
0-23
, - * /
1-31
, - * ? / L W C
1-12 JAN-DEC
, - * /
1-7 SUN-SAT
, - * ? / L C #
( )
, 1970-2099
, - * /