意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

APschedule 三大trigger

来源:恒创科技 编辑:恒创科技编辑部
2024-02-04 05:32:59

第一 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)

  

参数解释:


APschedule 三大trigger

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):



上一篇: ubuntu安装docker 下一篇: 手机怎么远程登录云服务器?