Parse/evaluate/generate CrontabExpressions outside of linux?

前端 未结 2 934
清歌不尽
清歌不尽 2021-01-16 10:43

I\'m building some software that needs a scheduling input, and I\'d really like to re-use the design of crontab because it simply works.

CrontabExpressions can be re

相关标签:
2条回答
  • 2021-01-16 11:20

    To output the next 25 timestamps that match the crontab you could use crontab Python module:

    from datetime import datetime, timedelta
    import crontab
    
    tab = crontab.CronTab('2-59/3 1,9,22 11-26 1-6 ? 2012')
    
    dt = datetime.now()
    for _ in xrange(25):
        delay = tab.next(dt) # seconds before this crontab entry can be executed.
        dt += timedelta(seconds=delay)
        print(dt)
    

    Output

    2012-01-11 22:41:00
    2012-01-11 22:44:00
    2012-01-11 22:47:00
    2012-01-11 22:50:00
    2012-01-11 22:53:00
    2012-01-11 22:56:00
    2012-01-11 22:59:00
    2012-01-12 01:02:00
    2012-01-12 01:05:00
    2012-01-12 01:08:00
    2012-01-12 01:11:00
    2012-01-12 01:14:00
    2012-01-12 01:17:00
    2012-01-12 01:20:00
    2012-01-12 01:23:00
    2012-01-12 01:26:00
    2012-01-12 01:29:00
    2012-01-12 01:32:00
    2012-01-12 01:35:00
    2012-01-12 01:38:00
    2012-01-12 01:41:00
    2012-01-12 01:44:00
    2012-01-12 01:47:00
    2012-01-12 01:50:00
    2012-01-12 01:53:00
    

    There is also python-crontab that provides crontab module but with richer functionality (parse/generate).

    0 讨论(0)
  • 2021-01-16 11:23

    There is a Java library as part of the Quartz Scheduler which can be used to evaluate cron expressions quite easily.

    The class CronExpression yields methods like isSatisfiedBy(Date date) or getNextValidTimeAfter(Date date) which is very useful.

    The library is freely available.

    0 讨论(0)
提交回复
热议问题