Планировщик
Планировщик предназначен для того, чтобы автоматизировать планирование задач, событий, встреч, составление календарей, расписаний и т. д. Во многих прикладных решениях возникает необходимость в отображении данных в виде календаря или расписания. Задачи визуального планирования, например, часто возникают при автоматизации салонов красоты, стоматологических и ветеринарных клиник, фитнес-центров и т. д.
Архитектура
Планировщик представляет собой совокупность объекта встроенного языка и поля формы, которое отображает данные этого объекта. Благодаря этому становится возможным визуализация данных в удобном для планирования виде и их интерактивное изменение.
Планировщик не является объектом конфигурации, поэтому никакой собственной структуры для хранения данных он не имеет. Однако с помощью встроенного языка можно загрузить в него данные практически любого объекта конфигурации, лишь бы этот объект обладал двумя реквизитами типа
Интерактивное изменение элементов
При интерактивном изменении в форме элементов планировщика генерируется событие, в котором с помощью встроенного языка можно изменить данные того объекта информационной базы, из которого они загружались, и сохранить их в базе данных.
Измерения
Кроме элементов планировщик обладает ещё и измерениями. Каждое измерение позволяет группировать элементы планировщика по отношению к каждому значению этого измерения. Например, в качестве измерения может выступать учебная группа. Тогда элементы планировщика (события) можно анализировать по их отношению к каждой из имеющихся учебных групп: 961 группа, 962 группа и 963 группа.
Планировщик позволяет создавать вложенные элементы измерений. Например, если измерением планировщика является мастер, работающий в парикмахерской, то все мастера могут быть разделены на две группы: женские и мужские. Каждая из этих групп может быть свернута или развернута, что упрощает работу с планировщиком при большом количестве элементов измерений.
Представление данных
Планировщик имеет несколько свойств, с помощью которых можно создавать такие представления данных, как «День», «Неделя» или «Месяц».
Кроме этого планировщик позволяет отображать сразу несколько интервалов, и совсем не обязательно, что эти интервалы должны следовать друг за другом непрерывно. Например, задав три отображаемых интервала (7 февраля, 14 февраля и 21 февраля) можно одновременно показать три пятницы, чтобы сравнить состав дел в эти дни и, возможно, перенести невыполненные дела на следующую пятницу:
Планировщик может содержать не одну, а несколько шкал времени, каждая со своей периодичностью. Это удобно в тех случаях, когда отображаемые данные нужно идентифицировать, например, с точностью до дня и часа:
Саму шкалу времени можно показать полностью, либо скрыть её начало и/или конец. Это удобно, например, для отображения только рабочих часов:
По желанию в планировщике можно включить или выключить отображение текущего времени:
Интервалы фона позволяют, например, выделить другим цветом нерабочие часы или выходные дни:
В интервалах фона можно выводить собственный текст. Это позволяет, например, отображать загруженность ресурсов на каком-либо временном интервале при свернутых группах измерений.
Редактирование данных
Интерактивное добавление данных в планировщик осуществляется простым щелчком мыши. При этом открывается окно быстрого редактирования элемента планировщика:
В этом окне можно задать текст элемента (события). Если нужно изменить другие свойства элемента, по кнопке Редактировать в этом окне открывается стандартная форма для редактирования всех свойств элемента планировщика.
Редактирование существующих элементов можно выполнять как через эти формы, так и перетаскиванием элементов и изменением их границ с помощью мыши:
Для любого элемента можно задать расписание — периодичность, с которой будет повторяться это событие:
Планировщик предназначен для выполнения определенных задач по расписанию или событию. Типовые задачи: формирование пакетных отчетов, рассылка электронных писем (отчетов), прием документов из электронных писем, резервное копирование баз данных и т.п. Cкачать дистрибутив службы планировщика, актуальной для соответствующей версии базы данных, можно по ссылке : https://keysystems.ru/files/web/INSTALL/SMART2/install/TaskSchedulerService/ .
Планировщик может быть запущен/настроен локально либо удаленно — для выбора настраиваемого планировщика используется кнопка «Выбрать расположение планировщика» :
Учетная запись Windows По умолчанию служба планировщика, будучи службой Windows, запускается от имени системной учетной записи Windows (Local system), которая не является доменной учетной записью и может не иметь необходимых прав доступа для нормальной работы. Рекомендуем запускать службу от имени какой-либо доменной учетной записи (например, для получения доступа к сетевым папкам домена).
Учетная запись «Бюджет-СМАРТ»
Текущее расположение просматриваемых задач можно определить по заголовку окна списка задач: если перед текстом «Планировщик задач» ничего нет, то просматривается список локальных задач , иначе просматривается список задач на удаленном компьютере (как служба) и в заголовке отображается адрес этого удаленного компьютера.
Кнопка «Запуск вручную» всегда запускает задачу в текущем процессе экземпляра «Бюджет-СМАРТ», как служба задача работает только по расписанию.
Лог работы планировщика расположен по пути C:\Program Files (x86)\Keysystems\TaskSchedulerService\Logs\ . На каждый день создается отдельный файл лога.
Использование прокси-сервера Для некоторых задач требуется выход в интернет (например при обновлении Справочника БИК): планировщиком используется прокси указанный для комплекса в окне входа.
Если подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать:
<add Key=»UseProxy» Value=»true» /> <add Key=»UseDefaultProxy» Value=»false» /> <add Key=»ProxyServer» Value=»https://proxy:port» /> <add Key=»ProxyLogin» Value=»» /> <add Key=»ProxyPassword» Value=»» />
Уведомление о результате выполнения задачи Для некоторых типов задач результат их выполнения (успех или ошибка) рассылается пользователям, указанным в настройке «Меню Настройки: НАСТРОЙКИ \ Сервер сообщений \ Адресаты сообщений — настройка — Адресаты системных сообщений». Это такие задачи как:
Задачи
Загрузка справочника банков
Предназначена для автоматического обновления Справочника БИК по расписанию с сайта Банка России. Для этого:
В задаче по обновлению справочника банков указывается «Базовый адрес обновлений справочника» — по умолчанию https://www.cbr.ru/VFS/mcirabis/BIKNew/ (с 02 июля 2018г). Скачиваются и обрабатываются xml файлы с тэгом ed807.
Примечание. Если задача выполняется в текущем процессе «Бюджет-СМАРТ» и подключение к интернету осуществляется через прокси, то параметры прокси-сервера следует указывать на вкладке «Соединение» окна входа в комплекс.
При удачном завершении очередной загрузки на вкладке «Журнал событий» задачи будет результат в виде
Для просмотра протокола загрузки следует открыть детализацию на вкладке «Журнала событий» в задаче планировщика.
Задача приема файлов по email (выписки, ФНС, платежки и т.п.). Решается последовательно двумя типами задач: 1) Проверка внешнего почтового ящика. С заданной периодичностью проверяет внешний почтовый ящик и загружает файлы из входящих сообщений в заданную папку. Обработанные почтовые сообщения удаляются из входящих.
2) Импорт документов (ЭОД). Осуществляет прием файлов из определенной папки (которую пополняет первая задача по проверке почтового ящика). Обработанные файлы не удаляются и не перемещаются. Работает задача не по расписанию, а по факту появления файла приема в заданной папке.
Рекомендуемые настройки для приема отдельных документов (платежки, заявки и т.п.) Параметры задачи:
Триггера задачи:
Рекомендуемые настройки для приема выписок Параметры задачи:
<Root> <upload> <code>98ac9f51-ea1a-df11-a3dc-16c03228c478</code> <file>00001700.se7</file> <file>00001704.se7</file> <file>00242K00.rk7</file> <file>00242K04.rk7</file> </upload> </Root>
где 98ac9f51-ea1a-df11-a3dc-16c03228c478 — уникальный идентификатор сеанса приема, для каждого файла описания свой (например поле GUID из одного из файлов RK). Далее в тегах <file> перечислены имена файлов приема в нужном порядке.
Расписание (триггеры) задачи:
Примечание. Если не применять файл описания, то:
Выгрузка отчетов.
Формирование по расписанию. В этом случае выписки формируются с задержкой на 1-5 дней — время, необходимое для полной обработки дня специалистами финоргана. Тип задачи «Пакетная выгрузка отчетов». В параметрах задачи следует:
Ручной запуск (пользователь решает, когда обработка данных завершена и можно формировать выписки за этот день). А) С использованием планировщика, тип задачи «Пакетная выгрузка отчетов» Создается задача аналогично варианта по расписанию (какие отчеты и куда выгружать), только разрешить ручной запуск и не задавать расписания. Уполномоченное лицо, когда настал момент предоставлять выписки, заходит в планировщик и выполняет (запускает) задачу, указав нужный период отчета.
Примечание. Для того же пользователя, от имени которого будет выполняться задача формирования отчетов, рекомендуем создавать задачу «Синхронизация расчетной даты» — чтоб расчетная дата комплекса, относительно которой обычно формируется отчетность, для этого пользователя совпадала с системной датой SQL сервера. Предварительное (до выгрузки отчетов) выполнение этой задачи позволит гарантировать формирование отчетов за нужный период. См. так же параметр «Смещение дней» задачи «Пакетная выгрузка отчетов».
Рассылка файлов по почте. Тип задачи «Отправка файла по почте». В параметрах задачи в поле «Сообщение» можно применить переменные:
Задача отслеживает изменения файловой системы (появление новых файлов, см вкладку «Триггеры») и при появлении в заданной папке новых файлов рассылает письма с этими файлами. Файлы должны содержаить в своём имени идентификтор получателя (счет, ИНН и т.п.) заданный в справочнике «Корреспонденты. Участники рассылок». Если источником корреспондентов задан файл Recipients.txt (список получателей, все адреса пишутся с новой строки), то все файлы будут отправляться по каждому из адресов только из этого файла.
Задача отправки файла по почте не поддерживает ручной запуск (предполагает мгновенное выполнение, а файл отправки неизвестен), поэтому в этом случае пишет про отсутствии файла для отправки.
Системная задача «Синхронизация расчетной даты».
Предназначена для актуализации расчетной даты комплекса. Для успешного выполнения задачи требуется включение настройки на пользователя «Меню Настройки: НАСТРОЙКИ \ Даты \ Изменять расчетную дату каждый день». Принцип действия:
Если SQL сервер по каким-либо причинам недоступен для сохранения значения расчетной даты, то возникнут коллизии: для пользователя расчетная дата будет отображаться одна, а применяться другая (из настройки).
Формирование справочника БК Предназначена для обновления справочника «БК (расходы)» по данным документов.
Загрузка открытых данных Задача по загрузке открытых данных из ЭБ. Используется API сервис ЭБ: от «Бюджет-СМАРТ» формируется и отправляется в ЭБ запрос на предоставление данных — ЭБ формирует набор данных согласно указанного в запросе фильтра и возвращает данные в «Бюджет-СМАРТ» .
В разделе «Параметры» планировщика можно выбрать следующие документы для загрузки:
Сводный реестр (163н) — задача предназначена для обновления справочника «Сводный реестр 163н». В задаче нужно указать фильтр, согласно которого будут запрошены данные в ЭБ: Код субъекта — указывается кодовое обозначение субъекта Российской Федерации, по учреждениям которого запрашивается сводный реестр, установленное в соответствии с федеративным устройством Российской Федерации, определенным статьей 65 Конституции Российской Федерации, в целях ведения ЕГРЮЛ, в соответствии со сведениями ЕГРЮЛ. Код уполномоченной организации — указывается код по сводному реестру (код УБП) организации, уполномоченной предоставлять документы по сводному реестру в ОрФК, т.е. код УБП финоргана бюджета, по учреждениям которого запрашивается сводный реестр.
Параметры фильтра учитываются по условию И (AND), необязательно указывать все параметры.
Корреспонденты (все) — обновляет/добавляет данные по ИНН из Сводного реестра 163н.
ОКТМО — Общероссийский классификатор территорий муниципальных образований(7710568760-OKTMO).
Задача сервера Произвольная процедура/команда SQL сервера. Доступен справочник типовых процедур:
execute (‘execute dbo.locked_day_close_timer @DayBack = -3, @nLevel = 1’) as user = ‘admin_day_close’
При выполнении задачи закрываются дни с 01.01 по указанную дату (= системная дата SQL — заданное в параметре @DayBack число дней), независимо от наличия в них документов. Закрытие выполняется для счетов бюджета, доступных пользователю, под которым стартует процедура dbo.locked_day_close_timer. Если необходимо закрывать дни для документов без счета бюджета, то следует использовать дополнительный параметр @CloseEmpty = 1.
|
Планировщик заданий для разработчиков — приложения Win32
Редактировать Твиттер LinkedIn Фейсбук Электронная почта- Статья
Важно
Этот раздел и другие разделы в этом разделе предназначены для разработчиков. Сведения об использовании компонента «Планировщик заданий» в качестве администратора или ИТ-специалиста см. в разделе «Планировщик заданий» в документации Microsoft Dynamics 365.
Планировщик заданий позволяет автоматически выполнять рутинные задачи на выбранном компьютере. Планировщик заданий делает это, отслеживая любые выбранные вами критерии (называемые триггерами), а затем выполняя задачи, когда эти критерии выполняются.
Некоторые примеры задач, для выполнения которых можно использовать планировщик заданий: запуск приложения; отправка сообщения электронной почты; или отображение окна сообщения. Вы можете запланировать выполнение задачи в ответ на эти триггеры:
- При возникновении определенного системного события.
- В определенное время.
- В определенное время по ежедневному расписанию.
- В определенное время по еженедельному расписанию.
- В определенное время по ежемесячному расписанию.
- В определенное время по ежемесячному расписанию дня недели.
- Когда компьютер переходит в состояние ожидания.
- Когда задача зарегистрирована.
- При загрузке системы.
- Когда пользователь входит в систему.
- При изменении состояния сеанса сервера терминалов.
Планировщик заданий предоставляет API в следующих формах:
- Планировщик заданий 2.0: интерфейсы и объекты предоставляются для C++ и для разработки сценариев соответственно.
- Task Scheduler 1.0: интерфейсы предназначены только для разработки на C++.
Требования к среде выполнения
Для планировщика заданий требуются следующие операционные системы:
- Планировщик заданий 2.0: для клиента требуется Windows Vista или более поздняя версия. Для сервера требуется Windows Server 2008 или более поздняя версия.
- Планировщик заданий 1. 0: для клиента требуется Windows Vista или Windows XP. Для сервера требуется Windows Server 2008 или Windows Server 2003.
В этом разделе
Тема | Описание |
---|---|
Что нового в планировщике заданий | Обзор новых функций, представленных в планировщике заданий. |
О планировщике заданий | Общая концептуальная информация об API планировщика заданий. |
Использование планировщика заданий | Примеры кода, демонстрирующие использование API-интерфейсов планировщика заданий. |
Ссылка на планировщик заданий | Подробная справочная информация по API-интерфейсам планировщика заданий и схеме планировщика заданий. |
Планирование и триггеры — документация Airflow
Планировщик Airflow отслеживает все задачи и все DAG и запускает экземпляры задач, зависимости которых были удовлетворены. За кулисами, он отслеживает и синхронизируется с папкой для всех объектов DAG, которые она может содержать, и периодически (каждую минуту или около того) проверяет активные задачи, чтобы увидеть, они могут быть запущены.
Планировщик Airflow предназначен для работы в качестве постоянной службы в
Производственная среда воздушного потока. Чтобы начать, все, что вам нужно сделать, это
выполнить планировщик воздушного потока
. Он будет использовать конфигурацию, указанную в воздушный поток.cfg
.
Обратите внимание, что если вы запускаете DAG в schedule_interval
одного дня,
запуск с отметкой 2016-01-01
будет запущен вскоре после 2016-01-01T23:59
.
Другими словами, экземпляр задания запускается после того, как период, который он охватывает,
закончился.
Давайте повторим это Планировщик запускает ваше задание один раз schedule_interval
ПОСЛЕ
дата начала, в КОНЕЦ периода.
Планировщик запускает экземпляр исполнителя, указанного в вашем воздушный поток.cfg
. Если это LocalExecutor
, задачи будут
выполняются как подпроцессы; в случае CeleryExecutor
и MesosExecutor
, задачи выполняются удаленно.
Чтобы запустить планировщик, просто введите команду:
планировщик воздушного потока
Прогоны DAG
Прогон DAG — это объект, представляющий экземпляр DAG во времени.
Каждая группа обеспечения доступности баз данных может иметь или не иметь расписание, в котором сообщается, как выполняются запусков группы обеспечения доступности баз данных
.
созданный. schedule_interval
определяется как аргументы DAG и получает
предпочтительно
выражение cron как
a str
или объект datetime.timedelta
. Кроме того, вы также можете
используйте один из этих «предустановленных» cron:
предустановка | означает | крон |
---|---|---|
Нет | Не планировать, использовать исключительно для «внешнего запуска» ДАГ | |
@один раз | Расписание один раз и только один раз | |
ежечасно | Запускать один раз в час в начале часа | 0 * * * * |
@ежедневно | Запускать один раз в день в полночь | 0 0 * * * |
@еженедельно | Выполнять один раз в неделю в полночь в воскресенье утром | 0 0 * * 0 |
@ежемесячно | Выполнять один раз в месяц в полночь первого дня месяца | 0 0 1 * * |
@ежегодно | Запускать один раз в год в полночь 19 января. 0080 | 0 0 1 1 * |
Примечание : Используйте schedule_interval=None
, а не schedule_interval='None'
, когда
вы не хотите планировать свою DAG.
Будет создан экземпляр вашей DAG
для каждого расписания при создании записи DAG Run
для каждого расписания.
Запуски DAG имеют связанное с ними состояние (выполнение, сбой, успех) и сообщает планировщику, какой набор расписаний должен быть оценен для сдачи задач. Без метаданных на уровне выполнения DAG Airflow планировщик должен был бы сделать гораздо больше работы, чтобы выяснить, какие задачи должен сработать и начать ползать. Это может также создать нежелательные обработки при изменении формы вашего DAG, например, путем добавления новых задания.
Backfill and Catchup
Группа DAG Airflow с start_date
, возможно end_date
и schedule_interval
определяет
серии интервалов, которые планировщик превращает в отдельные Dag Runs и выполняет. Ключевая возможность
Airflow заключается в том, что эти запуски DAG являются атомарными, идемпотентными элементами, и планировщик по умолчанию будет проверять
время жизни DAG (от начала до конца/сейчас, по одному интервалу за раз) и запуск DAG Run для любого
интервал, который не был запущен (или был очищен). Эта концепция называется Catchup.
Если ваша группа обеспечения доступности баз данных написана для обработки собственного наверстывания (IE не ограничивается интервалом, а вместо этого «Сейчас»
например.), тогда вы захотите отключить наверстывание (либо на самой DAG с dag.catchup =
False
) или по умолчанию на уровне файла конфигурации с catchup_by_default = False
. Что это
достаточно указать планировщику создавать запуск DAG только для самого последнего экземпляра DAG.
интервальная серия.
""" Код, который идет вместе с учебным пособием по Airflow, находится по адресу: https://github.com/airbnb/airflow/blob/master/airflow/example_dags/tutorial. py """ от импорта воздушного потока DAG из airflow.operators.bash_operator импортировать BashOperator из даты и времени импортировать дату и время, timedelta default_args = { «владелец»: «воздушный поток», 'зависит от_прошлого': Ложь, 'start_date': дата и время (2015, 12, 1), 'электронная почта': ['[email protected]'], 'email_on_failure': Ложь, 'email_on_retry': Ложь, «повторяет»: 1, 'retry_delay': дельта времени (минуты = 5), 'schedule_interval': '@почасово', } dag = DAG('учебник', catchup=False, default_args=default_args)
В приведенном выше примере, если группа обеспечения доступности баз данных выбрана демоном планировщика 02 января 2016 г. в 6 часов утра (или из
командной строке) будет создан один запуск DAG с execute_date
от 01.01.2016, а следующий
один будет создан сразу после полуночи утром 03.01.2016 с датой исполнения 02.01.2016.
Если бы вместо этого значение dag.catchup
было True, планировщик создал бы выполнение DAG для каждого
завершенный интервал между 01. 12.2015 и 02.01.2016 (но еще не один за 02.01.2016, так как этот интервал
не завершено), и планировщик выполнит их последовательно. Такое поведение отлично подходит для атомарных
наборы данных, которые можно легко разделить на периоды. Отключение наверстывания — это здорово, если ваши DAG Runs работают
засыпка внутри.
Внешние триггеры
Обратите внимание, что Запуски DAG
также можно создавать вручную через CLI во время
запустив команду airflow trigger_dag
, где вы можете определить
конкретный run_id
. DAG Runs
, созданный вне
планировщик связывается с отметкой времени триггера и будет отображаться
в пользовательском интерфейсе наряду с запланированным DAG запускается
.
На заметку
- Первый
DAG Run
создается на основе минимумstart_date
для задачи в вашей DAG. - Последующие
Запуски DAG
создаются процессом планировщика на основеschedule_interval
вашей DAG последовательно. - При очистке состояния набора задач в надежде на их повторный запуск,
важно также помнить о состоянии
DAG Run
, поскольку оно определяет должен ли планировщик рассматривать запуск задач для этого запуска.
Вот несколько способов разблокировать задачи :
- Из пользовательского интерфейса вы можете очистить (например, удалить статус) отдельных экземпляров задач. из диалогового окна экземпляров задач, определяя, хотите ли вы включить прошлое/будущее и восходящие/нисходящие зависимости. Обратите внимание, что затем появится окно подтверждения и позволяет вам увидеть набор, который вы собираетесь очистить. Вы также можете очистить все экземпляры задач связанный с даг.
- Команда CLI
airflow clear -h
имеет множество параметров, когда дело доходит до очистки экземпляра задачи. состояния, включая указание диапазонов дат, таргетинг на task_id путем указания регулярного выражения, флаги для включения вышестоящих и нижестоящих родственников и нацеливания экземпляров задач на определенные состояния (не удалось
илиуспешно
) - При очистке экземпляра задачи запись экземпляра задачи больше не удаляется.