• APschedule 三大trigger


    第一 interval  

    class IntervalTrigger(BaseTrigger):
        """
        Triggers on specified intervals, starting on ``start_date`` if specified, ``datetime.now()`` +
        interval otherwise.
    
        :param int weeks: number of weeks to wait
        :param int days: number of days to wait
        :param int hours: number of hours to wait
        :param int minutes: number of minutes to wait
        :param int seconds: number of seconds to wait
        :param datetime|str start_date: starting point for the interval calculation
        :param datetime|str end_date: latest possible date/time to trigger on
        :param datetime.tzinfo|str timezone: time zone to use for the date/time calculations
        :param int|None jitter: delay the job execution by ``jitter`` seconds at most
        """
    
        __slots__ = 'timezone', 'start_date', 'end_date', 'interval', 'interval_length', 'jitter'
    
        def __init__(self, weeks=0, days=0, hours=0, minutes=0, seconds=0, start_date=None,
                     end_date=None, timezone=None, jitter=None):
            self.interval = timedelta(weeks=weeks, days=days, hours=hours, minutes=minutes,
                                      seconds=seconds)
    

      

    参数解释:

    weeks: 多少周执行一次

    days:多少天执行一次

    hours:间隔小时

    minutes: 分钟

    seconds:秒

    如果以上几个参数都设置将会累加即时间隔

    jetter :延迟多久执行

    start_date : 间隔时间的相对起点时间,往后推算开始时间

    end_date : 间隔时间的终止时间,由终止时间往前推算最可能的时间,若不指定一直执行,指定后执行到终止结束

    2. DateTrigger :

    class DateTrigger(BaseTrigger):
    """
    Triggers once on the given datetime. If ``run_date`` is left empty, current time is used.

    :param datetime|str run_date: the date/time to run the job at
    :param datetime.tzinfo|str timezone: time zone for ``run_date`` if it doesn't have one already
    """

    __slots__ = 'run_date'

    def __init__(self, run_date=None, timezone=None):
    timezone = astimezone(timezone) or get_localzone()
    if run_date is not None:
    self.run_date = convert_to_datetime(run_date, timezone, 'run_date')
    else:
    self.run_date = datetime.now(timezone)

    def get_next_fire_time(self, previous_fire_time, now):
    return self.run_date if previous_fire_time is None else None
    参数:
     run_date 指定执行时间

    添加此类触发器job之后,只运行一次,可以指定运行时间;若不指定则默认为当前时间。

    正常使用时,使用add_job,不指定trigger类型,默认就是DateTrigger

    指定trigger类型,可以使用字符串date,或者直接使用类DateTrigger的实例

    3. CronTrigger

    class CronTrigger(BaseTrigger):
    """
    Triggers when current time matches all specified time constraints,
    similarly to how the UNIX cron scheduler works.

    :param int|str year: 4-digit year
    :param int|str month: month (1-12)
    :param int|str day: day of month (1-31)
    :param int|str week: ISO week (1-53)
    :param int|str day_of_week: number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun)
    :param int|str hour: hour (0-23)
    :param int|str minute: minute (0-59)
    :param int|str second: second (0-59)
    :param datetime|str start_date: earliest possible date/time to trigger on (inclusive)
    :param datetime|str end_date: latest possible date/time to trigger on (inclusive)
    :param datetime.tzinfo|str timezone: time zone to use for the date/time calculations (defaults
    to scheduler timezone)
    :param int|None jitter: delay the job execution by ``jitter`` seconds at most

    .. note:: The first weekday is always **monday**.
    """

    FIELD_NAMES = ('year', 'month', 'day', 'week', 'day_of_week', 'hour', 'minute', 'second')
    FIELDS_MAP = {
    'year': BaseField,
    'month': MonthField,
    'week': WeekField,
    'day': DayOfMonthField,
    'day_of_week': DayOfWeekField,
    'hour': BaseField,
    'minute': BaseField,
    'second': BaseField
    }

    __slots__ = 'timezone', 'start_date', 'end_date', 'fields', 'jitter'

    def __init__(self, year=None, month=None, day=None, week=None, day_of_week=None, hour=None,
    minute=None, second=None, start_date=None, end_date=None, timezone=None,
    jitter=None):
  • 相关阅读:
    Redis数据持久化机制AOF原理分析一---转
    Linux中常用头文件的作用--转
    Signal Handling--ref
    Linux 信号signal处理函数--转
    深入redis内部--初始化服务器
    haproxy 503 service unavailable no server is avaible to handle this request
    linux下logrotate配置和理解---转
    extjs_09_定义自己的页面组件
    BZOJ 3211 弗洛拉前往国家 树阵+并检查集合
    atitit.无损传输二进制数据串传输网络
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/14881944.html
Copyright © 2020-2023  润新知