Show/Hide Toolbars

Руководство администратора

Задания по таймеру

Ссылки Назад Вверх Вперед

term_icon В системе существуют регламентные операции, которые должны выполняться не в ответ на действия пользователя, а в соответствии с определенным расписанием. Подобные действия называются Заданиями и управляются в разделе "Задания по таймеру".

В таблице Сервера указан сервер системы "Первая Форма", на котором запускаются задания.

Во таблице Задания (Quartz) отображаются задания, выполняемые на открытой платформе Quartz, с указанием времени ближайшего запуска, времени последнего запуска и текущего статуса задания.

jobslist

Задания по таймеру

Статусы заданий

WAITING — ожидает следующего запуска (нормальное состояние задания).

ACQUIRED — подготовка к запуску (задание будет выполняться следующим).

BLOCKED — задание заблокировано.

EXECUTING — задание выполняется в настоящее время. После выполнения статус задания будет возвращен в WAITING, или задание будет удалено, если у него больше нет повторений.

PAUSED — задание находится в состоянии паузы до тех пор, пока расписание не выполнит команду Resume.

Активность задания

Если задание нужно остановить на какое-то время (чтобы оно не запускалось по расписанию), в настройках расписания (см выше) отключите флажок Расписание активно. В этом случае расписание перейдет в статус PAUSED.

Ручной запуск задания

Задание в статусе WAITING можно запустить вручную, вне расписания, нажав кнопку jobslist_icon1 в конце соответствующей строки.

warning_icon   Если вручную запустить любое задание с любого веб-сервера, этот сервер появится в таблице "Сервера" в дополнительной строке. После перезапуска пула приложения эта дополнительная строка исчезнет из таблицы.

Разблокировка задания

Задание в статусе BLOCKED можно разблокировать кнопкой jobslist_icon2 в конце соответствующей строки.

Если задание отображается красным цветом, проверьте его статус и выполните регламентные действия, см. раздел Обслуживание заданий "Первой Формы" в Руководстве по техподдержке.

Ошибки при выполнения заданий фиксируются в журнале.

Расписание

Чтобы изменить расписание выполнения задания, щелкните мышкой на соответствующей строке и в открывшемся окне отключите настройку Использовать стандартное расписание.

jobs2

Задание использует стандартное расписание

Откроется форма для настройки расписания:

jobs

Задание использует заданное расписание

Для отключения расписания снимите отметку с опции Расписание активно.

Чтобы сохранить новые настройки, нажмите кнопку Сохранить.

Описание заданий

Задание

Описание

Задания (Quartz)

AddAssistantsRecipientsToUnansweredQuestionsJob

Добавляет заместителей, назначенных на будущие периоды, в получатели неотвеченных вопросов, адресованных замещаемым ими  сотрудникам

ADSyncJob

Синхронизирует учетные записи пользователей и орг.структуру "Первой Формы" с каталогом Active Directory

ArchiveCommentRecipientsJob

Архивирует получателей комментариев (для оптимизации размера таблиц в базе данных и скорости формирования ленты комментариев). Помечает прочитанными комментарии, которые не были прочитаны больше месяца

AbsenceJob

Обновляет кеш UserAbsencesCache

AzureCognitiveTranslateJob

Переводит комментарии в очереди

CalendarSyncFinishResourceFactJob

Проставляет фактические трудозатраты для событий в календаре

CalendarSyncJob

Синхронизация каледаря с Exchange

CheckDefaultFileDatabaseJob

Оптимизация БД основного файлового провайдера (dbcc checkdb)

CleanMailBoxesJob

Помечает на удаление письма старше n-дней (настройка почтового ящика Хранить письма)

ClearCommentRecipientsArchiveJob

Очищает архив получателей комментариев, срок которых больше года

ClearOldLogDbRecordsJob

Очищает журнал ошибок, журнал звонков и записи об изменении смарт-доступа в общем журнале (такие записи начинаются словами "Smart Доступ")

ClearOldPreUploadedForPostTaskFilesJob

Очищает временные файлы при постановке задачи

ClearAutomationScriptsLog

Очищает таблицу AutomationScriptsLog — лог хранимых процедур SOAP (удаляет записи старше двух недель)

ClearUnusedAddresses

Удаляет неиспользуемые адреса из ДП типа "Адрес" (т.е. адреса, которые не выбраны ни в одной задаче)

ClosingUserSession

Раз в сутки, в ночное время, закрывает открытые пользовательские сессии (в журнале активности пользователей UsersActivityInSystem)

CommentsTranslationJob

Очередь комментариев на перевод с помощью сервиса Azure Cognitive.

Задание включено только если в Общих настройках приложения в настройке Перевод комментариев Azure Cognitive Services указан соответствующий сервис

CreatePeriodicTasksJob

Создает повторяющиеся задачи

CreateTasksForAppointmentsJob

Создает задачи по встречам, которые по какой то причине не были созданы ранее

CreateTasksOccurrencesForAppointmentsJob

Создает задачи повторения всем незавершенным встречам и повторениям, синхронизирующимся с задачами

Delete1CLogExceptWeekJob

Чистит журнал синхронизации с 1С

DeleteDSSOlgLogs

Удаление логов DSS

DeleteOldJobLogJob

Чистит журнал выполнения заданий Quartz

DeleteOldLockTokensJob

(Устаревшее. WebDav больше не используется)

Чистит блокировки файлов WebDav’a

DeleteOldMobileClientStatsJob

Удаление старой статистики по клиентам мобильного приложения

DeleteOldPushTokensJob

Чистит старые пуш-токены для iOS

DeleteUserAbsenceLogsJob

Удаление старых логов отсутствия пользователей

DenormalizationBadJob

Перезапустить денормализацию изменения категории для застрявших задач

EmailJobPurgeDeleted

Физически удаляет письма, помеченные для удаления, синхронизация удаления которых завершена (до их удаления на сервере они остаются в БД, чтобы у задания синхронизации удаления была информация о том, какие именно письма удалил пользователь)

EmailJobReceiveSecondary

Получает письма, руководствуясь очередью на получение, формируемой заданием EmailJobSyncFolders. Данное задание пытается получить письма, при получении которых возникло больше 5 ошибок (после 5 попыток письмо все еще не получено). Такие письма перестают обрабатываться заданием EmailJobReceive, чтобы не тормозить получение новых писем, и обрабатываются заданием EmailJobReceiveSecondary

EmailJobReceive

Получает письма, руководствуясь очередью на получение, формируемой джобом EmailJobSyncFolders

EmailJobSendSecondary

Отправляет письма, обрабатывая очередь на отправку. Данное задание пытается отправить письма, при отправке которых возникло больше 5 ошибок (после 5 попыток письмо все еще не отправлено). Такие письма перестают обрабатываться заданием EmailJobSend, чтобы не тормозить отправку новых писем, и обрабатываются заданием EmailJobSendSecondary

EmailJobSend

Отправляет письма, обрабатывая очередь на отправку

EmailJobSyncDelete

Синхронизирует удаление писем. Сравнивает каждую папку в каждом почтовом ящике с локальным данными и делает выводы о том, какие письма были удалены на сервере и какие письма были удалены в почтовом клиенте "Первой Формы", и удаляет эти письма на другой стороне тоже

EmailJobSyncFolders

Синхронизирует папки почтовых ящиков – определяет наличие новых писем и синхронизирует флаги "прочтено\не прочтено".

warning_icon Задание не получает новые письма, а лишь формирует очередь на получение. Скачивает и получает письма задание EmailJobReceive

EnableDoSyncWithExchangeJob

Включает синхронизацию с Exchange всем пользователям, у которых она была выключена с ошибкой от Exchange, а не намеренно администратором

EnsureDenormCanonicalIndexesExists

Вызывает хранимую процедуру EnsureDenormCanonicalIndexesExists

EscalateOverdueSignatures

Эскалирует просроченные подписи

EventQueue1CJob

Обрабатывает очередь событий для 1С

FireUsersJob

Увольняет пользователей, находящихся в очереди на увольнение

LazyUpdatableCachesUpdateJob

Обновляет специальные кеши, которые заполняются по запросу на джоб сервере. К примеру, кеши для Exchange: кеш прав, кеш календарных папок для пользователей и т.д.

MarkOldUnredCommentsAsReadJob

Помечает как прочитанные все комментарии старше двух недель, если у пользователя более 200 непрочитанных комментариев

OverdueCommentsNotificationJob

Пишет комментарии в просроченные задачи (см. настройку уведомлений о просроченных задачах в категориях)

OverdueNotificationJob

Рассылает на почту отчет о просроченных задачах (см. настройку уведомлений о просроченных задачах в категориях)

OverdueStepActionJob

Выполняет просроченные переходы, для которых включена настройка "Выполнить переход когда просрочен"

PayControlTransactionsSyncJob

Синхронизация транзакций PayControl (см. ЭЦП)

PrepareUnusedFileStorageFilesForRemovalJob

Помечает на удаление неиспользуемые файлы в файловом хранилище (Диск)

Неиспользуемыми являются файлы удовлетворяющие следующим условиям:

Файл не имеет связи с папкой Диска

Файл не вложен в задачу

Файл не является вложением комментария

Файл не является вложением письма

Файл не является файлом типа RedLine

Файл не вложен в ДП

Файл не является шаблоном в настройках категории

Файл не является вложением встречи календаря

Файл не является файлом мобильного лога ошибок

Файл не является иконкой используемой в настройке индикатора (счетчика)

Файл не является аватаркой пользователя

Файл не участвует в процессе подписи при помощи ЭЦП

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

PurgeAttachmentsJob

Очищает удаленные файлы старше трех месяцев

PurgePushLogJob

Очищает логи пушей.

OcrJob

Используется для распознавания текста в изображениях (.img .jpg .png), благодаря чему обеспечивается поиск по графическим файлам:

main_search_files

Задание запускается каждые 15 минут.

Обязательным условием для работы задания является наличие пользовательского ключа FileIdToStartOcr, в котором необходимо указать минимальный ID файла (из таблицы в БД "FileStorageFiles"), с которого начинается обработка файлов.

Ночью с 23:00 до 07:00 задание работает без ограничения по ID для обработки всех файлов.

QueueEventsJob

Вызывает событие из очереди

QueueFailedEventsJob

Вызывает события с ошибками из очереди

RebuildIndexesJob

Перестраивает фрагментированные индексы и очищает кеш планов выполнения запросов. По умолчанию задание не активно. При включении надо указать нужную базу данных и пользователей, которым будут отправляться отчеты (если отчеты не нужны, то в качестве пользователя надо указывать systemrobot)

RemovePreparedFileStorageFilesJob

Удаляет помеченные к удалению файлы в файловом хранилище (Диске)

RemoveUnusedFilesInProvidersJob

Удаляет из файловых провайдеров файлы, не используемые в "Первой Форме"

SendRemindersJob

Рассылает напоминания

ServiceMailBoxesJob

Проверяет сервисные почтовые ящики, обрабатывая письма с уведомлениями о прочтении или новыми комментариями, отправленными по почте (если пользователь ответит на письмо с уведомлением о комментарии, то будет создан новый, ответный комментарий с текстом из отправленного им письма)

SetTaskIsOverdueJob

Помечает задачи с превышенным срок выполнения как просроченные

SmartRecurrenceJob

Выполняет smart-расписания

SqlServerQueueClearJob

Чистит очереди Rebus

SubcatTickersJob

Обновляет показатели для дерева категорий

Sync1CUsersJob

Синхронизирует пользователей из 1C

SyncAbsencesToCalendarSubcatJob

Синхронизирует отсутствия

SyncEdocumentsFromDiadocJob

Интеграция с системой Диадок

SyncEdocumentsFromSbisJob

Интеграция с системой СБИС

SyncExchangeRoutineJob

Экспортирует контакты в адресную книгу Exchange

SyncHookServiceRoutineJob

Отправляет неотправленные клиентам события и очищает записи о старых событиях из БД

SynchronizeTagsActiveTasksWithView

Пересчитывает доступы к активным задачам по условиям тегов

SynchronizeTagsTasksWithView

Пересчитывает доступы к задачам по условиям тегов

SyncOrgStructure1CJob

Синхронизирует орг. структуру из 1C

TikaJob

Получение текста из файлов (pdf, doc, docx, xsl, xslx, ppt, pptx, txt, xml, html), благодаря чему обеспечивается поиск по текстовым файлам:

main_search_files

Для работы джоба необходимо предварительно добавить сервис Tika и выбрать его в общих настройках приложения (пункт "Tika Service").

Обязательным условием для работы данного задания по таймеру является наличие пользовательского ключа FileIdToStartOcr, в котором необходимо указать минимальный ID файла (из таблицы в БД "FileStorageFiles"), с которого начинается обработка файлов.

Ночью с 23:00 до 07:00 задание работает без ограничения по ID для обработки всех файлов.

UpdateCoworkersCacheJob

Обновляет список коллег

UpdateSubcatTickersAndUserAssistancesJob

Обновляет показатели для дерева категорий

UserAuthenticationProviderVerificationJob

Проверка аутентификации активных пользователей. Периодичность запуска задания — 15 минут.

Алгоритм работы:

1. Раз в 15 минут получает всех пользователей, которые были активны в приложении за указанное время (атрбуты LastOnlineTime, LastMobileOnlineTime)

2. Если у активных пользователей указан SID — будет запрошен их статус в ActiveDirectory.

Данные для запроса в ActiveDirectory берутся из провайдера аутентификации "ActiveDirectory".

3. Если последняя смена пароля учетной записи пользователя в ActiveDirectory (атрибут pwdLastSet) произошла позже последнего входа пользователя в систему (атрибут lastLogin в таблице dbo.LoginsLog), будет запрошен повторный вход в систему (в таблице dbo.Users.ReloginRequired будет установлено значение 1)

4. Если учетная запись пользователя в ActiveDirectory отключена (атрибут userAccountControl содержит флаг ACCOUNTDISABLE (2)), будет запрошен повторный вход в систему (в таблице dbo.Users.ReloginRequired будет установлено значение 1)

При запросе повторного входа в систему приложение совершит переадресацию на страницу авторизации пользоватея.

Джоб учитывает значение ключа "UseSecureLDAP" (Использование SSL при аутентификации через LDAP) в web.config / appsettings.json

WarmUpPushJob

Диагностика отправки пушей

Полезные ссылки