Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » QAnywhere » QAnywhere 参考 » QAnywhere 传输和删除规则 » 规则语法

 

调度语法

调度语法
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   对于传输规则,当消息更改状态或网络状态发生变化时,将对规则进行评测。对于删除规则,当消息传输启动时,满足删除规则条件的消息将被删除。

  • 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 秒,则调度将每两分钟运行一次。如果想让执行重叠进行,则必须创建多个规则。

  1. 如果使用了 EVERY 子句,则查看下次调度时间是否在当天,以及是否在 BETWEEN ...AND 范围的开始时间。如果是,即为下次调度时间。

  2. 如果下一个调度时间不在当天,请查找下一个执行事件的日期。

  3. 查找此日期的 START TIME,或 BETWEEN ...AND 范围的开始时间。

QAnywhere 调度语法派生自 SQL Anywhere CREATE EVENT 调度语法。

关键字不区分大小写。

另请参见
示例

以下示例服务器传输规则文件适用于由客户端消息存储库 ID sample_store_id 标识的客户端。它创建一个双重调度:高优先级消息每小时发送一次。调度为 every 1 hours 而条件是 ias_priority=9。此外,在上午 8 点到 9 点之间的时间内,高优先级消息每分钟发送一次。

[sample_store_id]
; This rule governs when messages are transmitted to the client
; store with id sample_store_id.
;
   START TIME '06:00:00' EVERY 1 hours = ias_Priority = 9
   BETWEEN '08:00:00' AND '09:00:00' EVERY 1 minutes = ias_Priority = 9