日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring定时器总结

發布時間:2024/9/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring定时器总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • public?class?Busine***eport?{???

  • public?void?perform(){?//執行報表統計入口函數????

  • //業務邏輯????

  • }???

  • }???

  • -???

  • 第一步,在Spring配置文件中增加本業務類???

  • -???

  • <bean?id="?busine***eport?"?class="?Busine***eport?"/>???

  • -???

  • 第二步,定義任務。在Spring配置文件中配置代理類MethodInvokingJobDetailFactoryBean,定義任務的詳細信息。???

  • -???

  • <bean?id="?reportTask?"?class=?"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">???

  • <property?name="?targetObject?"?ref="?busine***eport?"?/>???

  • <property?name="?targetMethod?"?value="?perform?"?/>???

  • <property?name="?concurrent?"?value="?false?"?/>???

  • </bean>???

  • -???

  • 這個配置告訴Spring,我們的任務是執行id為busine***eport的bean中的perform函數。其中參數concurrent告訴Spring,不要并發運行這個任務。???

  • -???

  • 第三步,配置一個觸發器。在Spring配置文件中配置觸發器類CronTriggerBean?。???

  • -???

  • <bean?id="cronTrigger"?class="org.springframework.scheduling.quartz.CronTriggerBean">???

  • <property?name="jobDetail"?ref="?reportTask?"?/>???

  • <property?name="cronExpression"?value="0?0?1?1?*??"?/>???

  • </bean>???

  • -???

  • 觸發器將告訴Quartz兩件事:在何時觸發任務、觸發哪個任務。其中屬性參數cronExpression為調度時間,格式和unix上的?crontab類似,具體見下表1。“0?0?1?1?*??”表示每月1日凌晨1點運行。其中問號表示忽略該位置(星期)上的值。屬性參數jobDetail指向具體的任務bean:reportTask?。如果你有多個任務,每個任務的觸發時間都不一樣,則你可以在此配置多個不同的觸發器。 ??


  • 時間大小由小到大排列,從秒開始,順序為 秒,分,時,天,月,年??? *為任意 ?為無限制。由此上面所配置的內容就是,在每天的16點26分啟動znrwdb方法?


    具體時間設定可參考?

    "0/10 * * * * ?" 每10秒觸發?

    "0 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:05期間的每1分鐘觸發?
    "0 10,44 14 ? 3 WED" 每年三月的星期三的下午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 ? * 6L" 每月的最后一個星期五上午10:15觸發?
    "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一個星期五上午10:15觸發?
    "0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發?
    每隔5秒執行一次:*/5 * * * * ??
    每隔1分鐘執行一次:0 */1 * * * ??
    每天23點執行一次:0 0 23 * * ??
    每天凌晨1點執行一次:0 0 1 * * ??
    每月1號凌晨1點執行一次:0 0 1 1 * ??
    每月最后一天23點執行一次:0 0 23 L * ??
    每周星期天凌晨1點實行一次:0 0 1 ? * L?
    在26分、29分、33分執行一次:0 26,29,33 * * * ??
    每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ??

    通配符說明:
    *?表示所有值. 例如:在分的字段上設置 "*",表示每一分鐘都會觸發。
    ??表示不指定值。使用的場景為不需要關心當前設置這個字段的值。例如:要在每月的10號觸發一個操作,但不關心是周幾,所以需要周位置的那個字段設置為"?" 具體設置為 0 0 0 10?*??
    -?表示區間。例如 在小時上設置 "10-12",表示 10,11,12點都會觸發。
    ,?表示指定多個值,例如在周字段上設置 "MON,WED,FRI" 表示周一,周三和周五觸發
    /?用于遞增觸發。如在秒上面設置"5/15" 表示從5秒開始,每增15秒觸發(5,20,35,50)。 在月字段上設置'1/3'所示每月1號開始,每隔三天觸發一次。
    L?表示最后的意思。在日字段設置上,表示當月的最后一天(依據當前月份,如果是二月還會依據是否是潤年[leap]), 在周字段上表示星期六,相當于"7"或"SAT"。如果在"L"前加上數字,則表示該數據的最后一個。例如在周字段上設置"6L"這樣的格式,則表示“本月最后一個星期五"?
    W?表示離指定日期的最近那個工作日(周一至周五). 例如在日字段上設置"15W",表示離每月15號最近的那個工作日觸發。如果15號正好是周六,則找最近的周五(14號)觸發, 如果15號是周未,則找最近的下周一(16號)觸發.如果15號正好在工作日(周一至周五),則就在該天觸發。如果指定格式為 "1W",它則表示每月1號往后最近的工作日觸發。如果1號正是周六,則將在3號下周一觸發。(注,"W"前只能設置具體的數字,不允許區間"-").

    小提示

    'L'和 'W'可以一組合使用。如果在日字段上設置"LW",則表示在本月的最后一個工作日觸發(一般指發工資?)?

    #?序號(表示每月的第幾個周幾),例如在周字段上設置"6#3"表示在每月的第三個周六.注意如果指定"#5",正好第五周沒有周六,則不會觸發該配置(用在母親節和父親節再合適不過了)

    小提示




  • 第四步,配置一個調度器。在Spring配置文件中配置調度器類SchedulerFactoryBean。???

  • -???

  • <bean?class=?"org.springframework.scheduling.quartz.SchedulerFactoryBean">???

  • <property?name="triggers">???

  • <list>???

  • <ref?bean="cronTrigger"?/>???

  • </list>???

  • </property>???

  • </bean> ??


  • 轉載于:https://blog.51cto.com/breezewindlw/1627566

    總結

    以上是生活随笔為你收集整理的spring定时器总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。