通过 MP Author 将 IntervalSeconds 元素添加到基于脚本的监视器

Add IntervalSeconds Element to Script Based Monitor via MP Author

我使用 Silect MP Author 创建了一个基于 Powershell 脚本的监视器,这样我就可以安排它们的运行时间(例如每天 – 周日 – 周四)。 问题是, 我还需要可用性来调整间隔时间(例如每 30 秒)。 由于某种原因,这不是在 MP Author Wizard 中合并的有效选项。 您只能从以下 3 个选项中进行选择: 1. None 2. 每日 3.定期 如果选择每日选项,有人知道配置的间隔时间是多少吗? 此外, 在检查 MP Author 创建的 XML 文件时, 我可以看到在选择每日选项时,已创建以下元素:

    </Configuration>
  <OverrideableParameters>
    <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
    <OverrideableParameter ID="DaysOfWeekMask" Selector="$Config/DaysOfWeekMask$" ParameterType="int" />
    <OverrideableParameter ID="StartTime" Selector="$Config/StartTime$" ParameterType="string" />
    <OverrideableParameter ID="EndTime" Selector="$Config/EndTime$" ParameterType="string" />
  </OverrideableParameters>
  <ModuleImplementation Isolation="Any">
    <Composite>
      <MemberModules>
        <DataSource ID="Scheduler" TypeID="System!System.Scheduler">
          <Scheduler>
            <WeeklySchedule>
              <Windows>
                <Daily>
                  <Start>$Config/StartTime$</Start>
                  <End>$Config/EndTime$</End>
                  <DaysOfWeekMask>$Config/DaysOfWeekMask$</DaysOfWeekMask>
                </Daily>
              </Windows>
            </WeeklySchedule>
            <ExcludeDates />
          </Scheduler>
        </DataSource>

我可以只添加新元素吗(对于和标签):

<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:integer" name="IntervalSeconds" />
    <xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" type="xsd:integer" name="DaysOfWeekMask" />

<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />

并且在标记中为 IntervalSeconds 值换行?:

作为硬编码值

<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />

或者作为 Varibel?

<SimpleReccuringSchedule>
              <Interval Unit="Seconds">$Config/IntervalSeconds$</Interval>
            </SimpleReccuringSchedule>

根据 MS 文档,PublicSchedulerType,在您的方案中没有可配置的参数来设置间隔。根据架构定义,SimpleReccuringScheduleWeeklySchedule 互斥。最重要的是,MS没有提供例子,其中Start和End参数不同,他们建议使用它来进行一次火灾。

当然,您可以添加一个新参数并使其可覆盖,但是您没有地方可以使用它,所以这不会有任何区别。

要处理这个问题,您可以:

  1. 使用 SimpleReccuringSchedule 调度,或 SimpleScheduler 作为基础。在此处配置您的间隔。
  2. System.SchedulerFilter 条件检测模块添加到您的数据源以允许基本调度程序仅在配置 windows。