Добавление элемента IntervalSeconds в монитор на основе сценариев через MP Author - PullRequest
0 голосов
/ 25 ноября 2018

Я создал монитор на основе скриптов Powershell, используя Silect MP Author, чтобы я мог планировать их время выполнения (например, каждый день - вс - чт).Проблема в том, что мне также нужно наличие, чтобы настроить интервал времени (например, каждые 30 секунд).И по какой-то причине это недопустимая опция для объединения в мастере MP Author.Вы можете выбрать один из 3 следующих вариантов: 1. Нет 2. Ежедневно 3. Периодически Кто-нибудь знает, как настроен интервал времени, если выбран параметр Ежедневно?Кроме того, при изучении XML-файла, созданного MP Author, я вижу, что при выборе параметров Daily были созданы следующие элементы:

    </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>

1 Ответ

0 голосов
/ 31 декабря 2018

Согласно документации MS, PublicSchedulerType , в вашем сценарии нет настраиваемого параметра для установки интервала.SimpleReccuringSchedule является взаимоисключающим WeeklySchedule согласно определению схемы.Кроме того, MS не предоставляет пример, в котором параметры Start и End различаются, они рекомендуют использовать его для одного пожара.

Вы, конечно, можете добавить новый параметр и сделать его перезаписываемым, но у вас нет места, чтобы использовать его, так что это не будет иметь никакого значения.

Чтобы справиться с этой проблемой, вы можете:

  1. Использовать расписание SimpleReccuringSchedule илиSimpleScheduler в качестве базы.Настройте свой интервал здесь.
  2. Добавьте System.SchedulerFilter модуль обнаружения состояния к вашему источнику данных, чтобы разрешить базовый планировщик только в настроенных окнах.
...