導航:首頁 > 編程語言 > cron解析java

cron解析java

發布時間:2022-01-20 04:35:02

java spring 中(cron = "0 0 */2 * * ")表示多久運行一次

cron = "0 0 */2 * * ?"
表示在任意分鍾數後加2秒執行該定時任務

具體配置參數如下:
Cron-Expression in Quartz

表達式用" "分隔為7個部分,每部分含義如下

Field Name lowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W C
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L C #
Year (Optional) empty, 1970-2099 , - * /
補充說明:
'*'代表 '任何值'
'?'也代表 '任何值', 但只用於 Day-of-month 和 Day-of-Week, 當其中一個設置了條件時,另外一個就要用'?' 來表示 '任何值'
'-'用來表示範圍, 比如 Day-of-month 5-10 代表 5號到10號
','用來添加附加的參數,比如 Hours 4,14 代表 上午4點和下午兩點
'/'用來代表增量以用來循環,比如 Hours 2/6 代表 2點,8點,下午2點,下午8點
'L'用於 Day-of-month 和 Day-of-Week, 代表最後1天, 在Day-of-month中只用'L'就可以,在Day-of-week中用 'nL' 來代表是最後一個星期n
'W'用於 Day-of-month, 代表最近工作日,比如 '15W', 如果15號那天是周六則取14號周五,如果是周日則取16號周一,其他情況不變
'LW' 代表當月最後一個工作日
'#'用於 Day-of-Week, 'n#m'用於代表當月第m個 "周n"(根據n在week中的定義確定)
其實Spring中任務調度cronExpression的配置參數和上面的一些配置幾乎是一樣的(他只不過從秒開始quartz 是一個很不錯的spring 定時任備調度jar)

㈡ 如何在cron下運行Java程序並導入jar

JAR 文件包JAR 文件就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式

㈢ 頁面的時間參數轉化為corn表達式,Java程序

2013年9月27日到2014年9月27日之間---------這個需求無法寫到cron里。你可以用另外的定時器A去檢查,如果定時器列表裡有過期的,就清理掉,這樣就OK了。
下面是「每個星期五當天,從早上8點到下午4點,每隔2小時執行一次」的表達式

1,1,8-16/2,*,*,5,*

㈣ 如何根據cron表達式獲取下個執行時間

年,分分鍾就能解決你的問題。既然,你要真正的演算法。沒辦法,我看了一下類庫中的源碼,把其中針對你需要的部分給摳出來了。如果直接用這個類庫的話,貼不進去。。你可以看看,哥只能幫你到這兒了。。。其實Java有個第三方的類庫。名稱叫做quartz。可以滿足你的要求。
代碼太長

㈤ 如何利用crontab執行java文件

噢,你把這個文件保存下來嘛。
然後你運行 crontab -e
然後在vi編輯器里輸入
*/5 * * * * root ./temp.sh
然後保存就可以了。
crontab的具體用法我復一個文檔給你。

噢,下午已有一個高手回答了,答得很簡略也很實用。你可以聽他的。

*************************************************************
linux 下的crontab如何寫
wscdlzhom發布於 2008-2-24 | 439次閱讀 字型大小: 大 中 小 (網友評論 0 條) 我要評論
crontab命令的功能是在一定的時間間隔調度一些命令的執行。在/etc目錄下有一個crontab文件,這里存放有系統運行的一些調度程序。每個用戶可以建立自己的調度crontab。

cron 的主配置文件是 /etc/crontab,它包括下面幾行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用來配置 cron 任務運行環境的變數。SHELL 變數的值告訴系統要使用哪個 shell 環境(在這個例子里是 bash shell);PATH 變數定義用來執行命令的路徑。cron 任務的輸出被郵寄給 MAILTO 變數定義的用戶名。如果 MAILTO 變數被定義為空白字元串(MAILTO=""),電子郵件就不會被寄出。HOME 變數可以用來設置在執行命令或腳本時使用的主目錄。

/etc/crontab 文件中的每一行都代表一項任務,它的格式是:

minute hour day month dayofweek command

minute — 分鍾,從 0 到 59 之間的任何整數

hour — 小時,從 0 到 23 之間的任何整數

day — 日期,從 1 到 31 之間的任何整數(如果指定了月份,必須是該月份的有效日期)

month — 月份,從 1 到 12 之間的任何整數(或使用月份的英文簡寫如 jan、feb 等等)

dayofweek — 星期,從 0 到 7 之間的任何整數,這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)

command — 要執行的命令(命令可以是 ls /proc >> /tmp/proc 之類的命令,也可以是執行你自行編寫的腳本的命令。)

在以上任何值中,星號(*)可以用來代表所有有效的值。譬如,月份值中的星號意味著在滿足其它制約條件後每月都執行該命令。

整數間的短線(-)指定一個整數范圍。譬如,1-4 意味著整數 1、2、3、4。

用逗號(,)隔開的一系列值指定一個列表。譬如,3, 4, 6, 8 標明這四個指定的整數。

正斜線(/)可以用來指定間隔頻率。在范圍後加上 / 意味著在范圍內可以跳過 integer。譬如,0-59/2 可以用來在分鍾欄位定義每兩分鍾。間隔頻率值還可以和星號一起使用。例如,*/3 的值可以用在月份欄位中表示每三個月運行一次任務。

開頭為井號(#)的行是注釋,不會被處理。

如你在 /etc/crontab 文件中所見,它使用 run-parts 腳本來執行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目錄中的腳本,這些腳本被相應地每小時、每日、每周、或每月執行。這些目錄中的文件應該是 shell 腳本。

如果某 cron 任務需要根據調度來執行,而不是每小時、每日、每周、或每月地執行,它可以被添加到 /etc/cron.d 目錄中。該目錄中的所有文件使用和 /etc/crontab 中一樣的語法。

# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh

同時在寫crontab執行的.sh腳本時要注意添加許可權和路徑。例如:

crontab語句:30 14 * * * /opt/apps/ems_query/bin/start.sh

相應的腳本:
source /home/tvgame/.bash_profile。

㈥ Java怎麼把分鍾數或者毫秒值轉換為Quartz cron表達式,例如把5分鍾轉換後為(「0 0/5 * * * 」)急急急

參考如下內容:

CronTrigger
CronTriggers往往比SimpleTrigger更有用,如果您需要基於日歷的概念,而非SimpleTrigger完全指定的時間間隔,復發的發射工作的時間表。
CronTrigger,你可以指定觸發的時間表如「每星期五中午」,或「每個工作日9:30時」,甚至「每5分鍾一班9:00和10:00逢星期一上午,星期三星期五「。
即便如此,SimpleTrigger一樣,CronTrigger擁有的startTime指定的時間表時生效,指定的時間表時,應停止(可選)結束時間。
Cron Expressions
cron的表達式被用來配置CronTrigger實例。 cron的表達式是字元串,實際上是由七子表達式,描述個別細節的時間表。這些子表達式是分開的空白,代表:
1. Seconds
2. Minutes
3. Hours
4. Day-of-Month
5. Month
6. Day-of-Week
7. Year (可選欄位)
例 "0 0 12 ? * WED" 在每星期三下午12:00 執行,
個別子表達式可以包含范圍, 例如,在前面的例子里("WED")可以替換成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".
「*」 代表整個時間段.
每一個欄位都有一套可以指定有效值,如
Seconds (秒) :可以用數字0-59 表示,
Minutes(分) :可以用數字0-59 表示,
Hours(時) :可以用數字0-23表示,
Day-of-Month(天) :可以用數字1-31 中的任一一個值,但要注意一些特別的月份
Month(月) :可以用0-11 或用字元串 「JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC」 表示
Day-of-Week(每周):可以用數字1-7表示(1 = 星期日)或用字元口串「SUN, MON, TUE, WED, THU, FRI and SAT」表示
「/」:為特別單位,表示為「每」如「0/15」表示每隔15分鍾執行一次,「0」表示為從「0」分開始, 「3/20」表示表示每隔20分鍾執行一次,「3」表示從第3分鍾開始執行
「?」:表示每月的某一天,或第周的某一天
「L」:用於每月,或每周,表示為每月的最後一天,或每個月的最後星期幾如「6L」表示「每月的最後一個星期五」
「W」:表示為最近工作日,如「15W」放在每月(day-of-month)欄位上表示為「到本月15日最近的工作日」
「「#」:是用來指定「的」每月第n個工作日,例 在每周(day-of-week)這個欄位中內容為"6#3" or "FRI#3" 則表示「每月第三個星期五」

㈦ java中怎樣解析quartz cron

quartz 有庫,直接使用就可以的了

~

㈧ java cron每23個小時執行一次怎麼寫啊

0 0 0/23 * * ?
0/23 好像是23小時為增量執行一次 我不敢保證

㈨ java中的定時任務@Scheled中的cron每隔3天執行一次的表達式怎麼寫,

假如15:00:00執行
0 0 15 */3
這樣試試

每隔三天就是不管它是幾月幾號,也不會管是不是閏年或閏月。一律隔三天就是了。

㈩ java 定時任務的幾種實現方式

  1. JDK 自帶的定時器實現

    // schele(TimerTask task, long delay) 延遲 delay 毫秒 執行
    // schele(TimerTask task, Date time) 特定時間執行
    public static void main(String[] args) {
    for (int i = 0; i < 10; ++i) {
    new Timer("timer - " + i).schele(new TimerTask() {
    @Override
    public void run() {
    println(Thread.currentThread().getName() + " run ");
    }
    }, 1000);
    }
    }
    2. Quartz 定時器實現

    //首先我們需要定義一個任務類,比如為MyJob02 ,
    //該類需要繼承Job類,然後添加execute(JobExecutionContext context)方法,在
    //這個方法中就是我們具體的任務執行的地方。
    //由希望由調度程序執行的組件實現的介面
    public class MyJob02 implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
    // TODO Auto-generated method stub
    // 執行響應的任務.
    System.out.println("HelloJob.execute,"+new Date());
    }
    }

    public class QuartzTest5 {

    public static void main(String[] args) throws Exception {
    //SchelerFactory 是一個介面,用於Scheler的創建和管理
    SchelerFactory factory = new StdSchelerFactory();
    //從工廠裡面拿到一個scheler實例
    //計劃表(可能翻譯的不太貼切),現在我們有了要做的內容,
    //與調度程序交互的主要API
    /*
    * Scheler的生命期,從SchelerFactory創建它時開始,
    到Scheler調用shutdown()方法時結束;Scheler被創建後,
    可以增加、刪除和列舉Job和Trigger,以及執行其它與調度相關的操作
    (如暫停Trigger)。但是,Scheler只有在調用start()方法後,
    才會真正地觸發trigger(即執行job)
    */
    Scheler scheler = factory.getScheler();
    //具體任務.
    //用於定義作業的實例
    //JobBuilder - 用於定義/構建JobDetail實例,用於定義作業的實例。
    JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();


    //Trigger(即觸發器) - 定義執行給定作業的計劃的組件
    //TriggerBuilder - 用於定義/構建觸發器實例
    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
    .withSchele(CronScheleBuilder.cronSchele("0/1 * * * * ?")).build();
    scheler.scheleJob(job, trigger);
    scheler.start();


    }
    3. Spring boot 任務調度(這個非常容易實現)

    /*
    * 開啟對定時任務的支持
    * 在相應的方法上添加@Scheled聲明需要執行的定時任務。
    */
    @EnableScheling
    //@EnableScheling註解來開啟對計劃任務的支持
    public class Application {

    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
    }

    @Component
    public class ScheledTasks {
    private Logger logger = LoggerFactory.getLogger(ScheledTasks.class);
    private int i=0;
    //0 0 0 2 * ?
    @Scheled(cron="* * * 2 * ?")
    //@Scheled 註解用於標注這個方法是一個定時任務的方法
    public void testFixDelay() {
    logger.info("執行方法"+i++);
    }

閱讀全文

與cron解析java相關的資料

熱點內容
iphone音符符號 瀏覽:649
女設計師幾百年不死韓國 瀏覽:245
linux無法生成gbk文件 瀏覽:590
免費的最新電影qq群 瀏覽:83
數控g76螺紋怎麼編程 瀏覽:779
哪個影院不需要VIP 瀏覽:706
百度分享代碼錯誤 瀏覽:920
酷狗網路列表恢復 瀏覽:149
免費天堂網站 瀏覽:667
玉器網站源碼 瀏覽:249
開辟內宇宙超脫的小說 瀏覽:242
第二書包荷包 瀏覽:711
qq什麼版本有辦公應用 瀏覽:815
女主角叫米亞的恐怖片 瀏覽:904
男孩縮小在魚缸里 動漫 瀏覽:111
請檢查文件內容是否正確 瀏覽:109
word轉pdf大文件怎麼打開 瀏覽:447
不顯示u盤文件怎麼回事 瀏覽:691
想^_^香港看啪啪視頻 瀏覽:496
qq群贊賞照片不見了 瀏覽:187

友情鏈接