DevBookmark_Tasks_ Задачи – это скрипты, выполняемые на сервере приложений по расписанию. Список всех задач можно найти в справочнике "Tasks":

Tasks_ListForm

Окно справочника разделено на две части: слева отображается дерево групп задач, справа – список задач выбранной слева группы.

Помимо фильтров по Названию задачи (Name) и Тегам (Tag), имеется фильтр When did task work?, который включается флагом, расположенным справа от него, и позволяет найти все задачи, которые были выполнены в указанный момент времени.

Из списковой формы справочника можно:

выполнить задачу немедленно, не дожидаясь ее запуска по расписанию, выбрав пункт Start now контекстного меню;

открыть скрипт выбранной задачи в форме редактирования, выбрав пункт Edit script контекстного меню.

Фильтр When did task work? удобно использовать в случаях, когда с помощью задачи были изменены какие-либо данные и необходимо выяснить какой конкретно задачей это было сделано. Все задачи всегда выполняется от пользователя Task. Если из истории изменений видно, что данные были изменены пользователем Task, достаточно воспользоваться этим фильтром, указав дату внесения изменений, чтобы найти задачи, которые работали в это время.

Кнопка Tasks_EditFormButton Start Now в панели инструментов формы редактирования задачи позволяет выполнить задачу немедленно, не дожидаясь ее запуска по расписанию:

Tasks_EditForm1

Задача имеет следующие свойства:

Name – название задачи;

Script – ссылка на скрипт. При создании новой задачи скрипт создается автоматически при ее сохранении.

Скрипты задач реализуют интерфейс ITaskScript.

input На вход скрипта передается время начала выполнения задачи;

Folder – группа, которой принадлежит задача;

is active – флаг активности задачи. Если флаг снят, задача не будет выполняться по расписанию;

execute single – флаг, указывающий на необходимость запуска единственного экземпляра задачи. Если при наступлении времени следующего запуска задачи обнаружится, что она все еще выполняется с предыдущего запуска, второй экземпляр запущен не будет;

years, month, days, week days, hours, minutes, seconds – расписание (год, месяц, день, день недели, час, минута и секунда) выполнения задачи. Поля расписания могут иметь следующие значения:

* – любое значение. Например, если задачу необходимо выполнять каждый день, в поле days необходимо проставить значение *:

Tasks_EditFormTime1

N – целое положительное число. Например, если задачу необходимо выполнять по пятницам, в поле week days необходимо проставить значение 5:

Tasks_EditFormTime2

N1, N2, N3... – список целых положительных чисел. Например, если задачу необходимо выполнять только в летние месяцы, в поле month необходимо проставить значение 6, 7, 8:

Tasks_EditFormTime3

/N – дробное значение целого положительного числа. Задача будет выполнена для всех возможных значений дат/времени, остаток от деления которых на N будет равен нулю. Например, для поля month значение /2 будет соответствовать всем четным числам месяца 2, 4, 6..., а для поля minutes значение /15 будет соответствовать 0, 15, 30 и 45 минутам. Задача с обоими этими значениями будет выполняться по четным дням месяца каждые четверть часа (в 0, 15, 30 и 45 минут):

Tasks_EditFormTime4

N1/N2 – дробное значение целых положительных чисел. Задача будет выполнена для всех возможных значений дат/времени, остаток от деления которых на N2 будет равен N1. Например, для поля month значение 3/10 будет соответствовать 3 и 13 и 23 числу месяца:

Tasks_EditFormTime5

35_example

Например, нам необходимо, чтобы скрипт выполнялся на сервере приложений в 2013 году с понедельник по пятницу с 1 до 2 ночи и с 1 до 2 дня каждые 10 минут. Тогда расписание задачи будет выглядеть следующим образом:

Tasks_EditFormTime6

Metadata Tags – теги, используемые для описания функционала задачи;

Developer's comments – комментарии прикладного разработчика;

Application servers – список серверов приложений, на которых будет выполнена задача. Сервера сгруппированы по кластерам, в которые они входят. Среди всех доступных серверов следует выбрать флагами те, на которых задача будет выполняться (если не выбрано ни одного – задача не будет выполнена).

Список можно фильтровать по Названию кластера в соответствии с введенным в поле "Cluster name" текстом. Также список можно дополнительно фильтровать с помощью флагов по серверам:

Enable – по всем отмеченным флагами серверам;

Disable – по всем не отмеченным флагами серверам;

All – по всем серверам независимо от установленного флага.

Очистить содержимое фильтра и отобразить полный список серверов можно нажатием на кнопку DocCommnads_scr_DictEdit2_ClearAll.

35_settings

Для выполнения задач по расписанию в файле конфигурации ConsoleServer.exe.config хотя бы одного сервера приложений кластера должен быть включен планировщик задач:

<setting name="TaskSchedulerActive" serializeAs="String">

 <value>True</value>

</setting>