计算条件时,调度用来指定时间。在这些时间,将计算所有准备发送的消息的对应条件。满足条件的消息将在那时发送。
每个规则的形式如下:
schedules=condition
到达调度时间时,条件将应用于每条消息。如果消息满足条件,则消息被传输。
schedules : { AUTOMATIC | schedule-spec [,...] }
schedule-spec :
{ START TIME start-time | BETWEEN start-time AND end-time }
[ EVERY period { HOURS | MINUTES | SECONDS } ]
[ ON { ( day-of-week, ... ) | ( day-of-month, ... ) } ]
[ START DATE start-date ]
AUTOMATIC AUTOMATIC 表示每当有消息要传输都计算条件。传输满足对应条件的消息。
schedule-spec 由调度说明而不是由 AUTOMATIC 指定计算条件的时间。在调度时间,计算所有准备发送的消息的对应条件。满足条件的消息将在那时传输。
START TIME 在调度了事件的每一天中的最初调度时间。如果指定了 START DATE,则 START TIME 引用该日期。如果未指定 START DATE,则 START TIME 在当天(除非该时间已经过去)和随后的每一天(如果调度中含有 EVERY 或 ON)。
BETWEEN ...AND ... 显示一天中的一段时间,在该时间段之外,没有已调度的时间。如果指定了 START DATE,则调度的时间直到该日期才发生。
EVERY 连续调度事件之间的间隔。调度的事件仅在当天的 START TIME 之后或在 BETWEEN ... AND 指定的范围内发生。
ON 调度事件发生日的列表。如果指定了 EVERY,则缺省为每天。事件发生日可指定为周内某日或月内某日。
周内某日是星期一、星期二等等。您还可以使用完整形式的日期,例如 Monday。在以下情况下,您必须使用完整形式的日期名称:您所使用的语言不是英语,不是连接字符串中客户端请求的语言,也不是服务器窗口中出现的语言。
月内某日是从 0 到 31 的整数。0 值表示任何月的最后一天。
START DATE 调度事件开始发生的日期。缺省为当前日期。
可以为给定条件创建多个调度。这样可以实现复杂的调度。
如果调度说明的定义中含有 EVERY 或 ON,则调度说明将反复出现;如果未使用这些保留字,则调度最多指定一次。试图创建开始时间为过去时间的非反复出现的调度将出错。
每到调度时间,都计算关联的条件,然后计算下次调度时间和日期。
通过检查调度和查找下次调度时间来计算下次调度时间。如果调度指定每分钟一次,但计算条件需要 65 秒,则调度将每两分钟运行一次。如果想让执行重叠进行,则必须创建多个规则。
如果使用了 EVERY 子句,请查看下一个调度时间是否在当天,以及是否在 BETWEEN ... AND 范围之内。如果是,那就是下一个调度时间。
如果下一个调度时间不在当天,请查找下一个执行事件的日期。
查找指定日期的 START TIME,或 BETWEEN ... AND 范围的开始时间。
QAnywhere 调度语法派生自 Adaptive Server Anywhere CREATE EVENT 调度语法。
关键字不区分大小写。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。