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

Задания по таймеру
Максимально допустимое количество параллельных заданий по теймеру по умолчанию — 10. При необходимости иное значение можно задать в системном файле appsettings.json в ключе JobServerMaxConcurrency.
Статусы заданий
•WAITING — ожидает следующего запуска (нормальное состояние задания).
•ACQUIRED — подготовка к запуску (задание будет выполняться следующим).
•BLOCKED — задание заблокировано.
•EXECUTING — задание выполняется в настоящее время. После выполнения статус задания будет возвращен в WAITING, или задание будет удалено, если у него больше нет повторений.
•PAUSED — задание находится в состоянии паузы до тех пор, пока расписание не выполнит команду Resume.
Активность задания
Если задание нужно остановить на какое-то время (чтобы оно не запускалось по расписанию), в настройках расписания (см выше) отключите флажок Расписание активно. В этом случае расписание перейдет в статус PAUSED.
Ручной запуск задания
Задание в статусе WAITING можно запустить вручную, вне расписания, нажав кнопку
в конце соответствующей строки.
|
|---|
Разблокировка задания
Задание в статусе BLOCKED можно разблокировать кнопкой
в конце соответствующей строки.
Если задание отображается красным цветом, проверьте его статус и выполните регламентные действия, см. раздел Обслуживание заданий "Первой Формы" в Руководстве по техподдержке.
Ошибки при выполнения заданий фиксируются в журнале.
Журнал с фильтрацией по заданию
При нажатии на название в колонке Задание система автоматически открывает журнал заданий по таймеру с примененным фильтром по выбранному имени.

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

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

Задание использует заданное расписание
Для отключения расписания снимите отметку с опции Расписание активно.
Для заданий со смарт-расписанием и/или настроенным пакетом действий доступны прямые ссылки в разделы администрирования, по которым можно перейти в настройки соответствующего правила расписания или пакета действий.

Переход к настройкам расписания и пакета действий
Чтобы сохранить новые настройки, нажмите кнопку Сохранить.
Описание заданий
Задание |
Описание |
|
|---|---|---|
Задания (Quartz) |
||
AddAssistantsRecipientsToUnansweredQuestionsJob |
Добавляет заместителей, назначенных на будущие периоды, в получатели неотвеченных вопросов, адресованных замещаемым ими сотрудникам |
|
ADSyncJob |
Синхронизирует учетные записи пользователей и орг.структуру "Первой Формы" с каталогом Active Directory |
|
ArchiveCommentRecipientsJob |
Архивирует получателей комментариев, которые были отправлены более двух недель назад, для оптимизации размера таблиц в базе данных и скорости формирования ленты комментариев. Также помечает прочитанными комментарии, которые не были прочитаны больше месяца. Сообщения с архивированными адресатами (isArchive=true в таблице CommentRecipientsAll) не отображаются в представлении категории Лента. |
|
AbsenceJob |
Обновляет кеш UserAbsencesCache |
|
AzureCognitiveTranslateJob |
Асинхронный автоматический перевод локализованных значений на все языки при изменении локализации с использованием AI-сервиса. Джоб принимает параметры: исходный текст, язык источника и целевой язык. Настройки AI-сервиса задаются в разделе сервис TranslateService. Для работы сервиса используются только поля Url и Ключ. После настройки сервиса его необходимо выбрать в опции Перевод комментариев общих настроек приложения. Для возврата к использованию Azure Cognitive Services предусмотрена возможность указать кастомную настройку TranslationService со значением azure |
|
CalendarSyncFinishResourceFactJob |
Проставляет фактические трудозатраты для событий в календаре |
|
CalendarSyncJob |
Синхронизация каледаря с Exchange |
|
CheckDefaultFileDatabaseJob |
Оптимизация БД основного файлового провайдера (dbcc checkdb) |
|
CleanExpiredFilesFromPreuploadedTusStoreJob |
Удаление временных файлов из tus-хранилища. Время жизни загруженных файлов в часах устанавливается в параметре FileExpirationInHours ключа Tus в системном файле приложения appsettings.json. Если в параметре ключа задано NULL, файлы удаляться не будут.
|
|
CleanMailBoxesJob |
Помечает на удаление письма старше n-дней (настройка почтового ящика Хранить письма) |
|
ClearCommentRecipientsArchiveJob |
Очищает архив получателей комментариев, срок которых больше года |
|
ClearOldLogDbRecordsJob |
Очищает журнал ошибок, журнал звонков и записи об изменении смарт-доступа в общем журнале (такие записи начинаются словами "Smart Доступ") |
|
ClearOldPreUploadedForPostTaskFilesJob |
Очищает временные файлы при постановке задачи |
|
ClearAutomationScriptsLog |
Очищает таблицу AutomationScriptsLog — лог хранимых процедур SOAP (удаляет записи старше двух недель) |
|
ClearUnusedAddresses |
Удаляет неиспользуемые адреса из ДП типа "Адрес" (т.е. адреса, которые не выбраны ни в одной задаче) |
|
CloseStaleThreadsJob |
Закрывает обсуждения, в которых последнее сообщение было отправлено более 2 недель назад. Отрабатывает ежедневно в 02:00. Исключением являются категории из раздела, указанного в кастомной настройке SocialNetworksSettings.RootCategoryId |
|
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 |
Синхронизирует папки почтовых ящиков – определяет наличие новых писем и синхронизирует флаги "прочтено\не прочтено".
|
|
EnableDoSyncWithExchangeJob |
Включает синхронизацию с Exchange всем пользователям, у которых она была выключена с ошибкой от Exchange, а не намеренно администратором |
|
EnsureDenormCanonicalIndexesExists |
Вызывает хранимую процедуру EnsureDenormCanonicalIndexesExists |
|
EscalateOverdueSignatures |
Эскалирует просроченные подписи |
|
EventQueue1CJob |
Обрабатывает очередь событий для 1С |
|
FireUsersJob |
Увольняет пользователей, находящихся в очереди на увольнение |
|
LazyUpdatableCachesUpdateJob |
Обновляет специальные кеши, которые заполняются по запросу на джоб сервере. К примеру, кеши для Exchange: кеш прав, кеш календарных папок для пользователей и т.д. В кастомных настройках приложения поддерживаются два ключа для работы с заданием: LazyJobsShowDetailedLog — Выводит более подробные данные в сообщении задания по таймеру: ключи и полученные значения LazyJobsNumberOfItemsToProcessInBatch — Позволяет задать значение количества записей, которые будут единоразово обработаны в задании по таймеру |
|
MarkOldUnredCommentsAsReadJob |
Помечает как прочитанные все комментарии старше двух недель, если у пользователя более 200 непрочитанных комментариев |
|
MigrationExportJob |
Запускается при формировании файла конфигурации всех сущностей приложения по нажатию на кнопку Полная выгрузка на странице экспорта |
|
OverdueCommentsNotificationJob |
Пишет комментарии в просроченные задачи (см. настройку уведомлений о просроченных задачах в категориях) |
|
OverdueNotificationJob |
Рассылает на почту отчет о просроченных задачах (см. настройку уведомлений о просроченных задачах в категориях) |
|
OverdueStepActionJob |
Выполняет просроченные переходы, для которых включена настройка "Выполнить переход когда просрочен" |
|
ParseCommentsLinksJob |
Генерация ссылок из существующих комментариев. Задание выполняется автоматически с интервалом в одну минуту и обрабатывает комментарии, которые потенциально содержат ссылки (в тексте которых встречаются символы “#” или “http”). После обработки всех комментариев задание не отключается, а автоматически переходит в режим ежедневного запуска в 23:00. Базовым расписанием остается "Каждую минуту" для немедленного запуска после перезапуска системы, после чего джоб снова переключается на ежедневное выполнение, если нет активных задач для обработки. За одну итерацию обрабатывается до 10 000 комментариев. Идентификатор последнего обработанного комментария в каждой итерации сохраняется в системе в значении кастомной настройки приложения ParseCommentsLinksJob_LastParsedCommentId. После того как все существующие комментарии будут обработаны и новые записи для выборки отсутствуют, джоб автоматически приостанавливает свою работу |
|
PayControlTransactionsSyncJob |
Синхронизация транзакций PayControl (см. ЭЦП) |
|
PrepareUnusedFileStorageFilesForRemovalJob |
Помечает на удаление неиспользуемые файлы в файловом хранилище (Диск) Неиспользуемыми являются файлы удовлетворяющие следующим условиям: •Файл не имеет связи с папкой Диска •Файл не вложен в задачу •Файл не является вложением комментария •Файл не является вложением письма •Файл не является файлом типа RedLine •Файл не вложен в ДП •Файл не является шаблоном в настройках категории •Файл не является вложением встречи календаря •Файл не является файлом мобильного лога ошибок •Файл не является иконкой используемой в настройке индикатора (счетчика) •Файл не является аватаркой пользователя •Файл не участвует в процессе подписи при помощи ЭЦП Все файлы, удовлетворяющие перечисленным условиям, будут помечаться заданием как неиспользуемые. |
|
PurgeAttachmentsJob |
Очищает удаленные файлы старше трех месяцев |
|
PurgePushLogJob |
Очищает логи пушей. |
|
OcrJob |
Используется для распознавания текста в изображениях (.img .jpg .png), благодаря чему обеспечивается поиск по графическим файлам: ![]() Задание запускается каждые 15 минут. Обязательным условием для работы задания является наличие пользовательского ключа FileIdToStartOcr, в котором необходимо указать минимальный ID файла (из таблицы в БД "FileStorageFiles"), с которого начинается обработка файлов. Ночью с 23:00 до 07:00 задание работает без ограничения по ID для обработки всех файлов. |
|
QueueEventsJob |
Вызывает событие из очереди |
|
QueueFailedEventsJob |
Вызывает события с ошибками из очереди |
|
RebuildIndexesJob |
Перестраивает фрагментированные индексы и очищает кеш планов выполнения запросов. По умолчанию задание не активно. При включении надо указать нужную базу данных и пользователей, которым будут отправляться отчеты (если отчеты не нужны, то в качестве пользователя надо указывать systemrobot) |
|
RefreshAllUsersPermissionsJob |
Выполняет полный пересчет кастомных и гибких прав на задачи для всех пользователей раз в час |
|
RefreshOnlineUsersPermissionsJob |
Обновляет кастомные и гибкие права на задачи права для пользователей, находящихся в сети, каждые 5 минут |
|
RefreshDescendantSubcatAccessJob |
Актуализирует права доступа для дочерних подкатегорий каждые 5 минут |
|
RefreshSubcatTickersJob |
Обновляет данные индикаторов с количеством задач категорий каждые 5 минут |
|
RefreshUserAssistantIsActualJob |
Обновляет статус актуальности замещения пользователей каждые 30 минут. После отработки джоба по времени или вручную сбрасывается значение в кеше UserAssistantCache |
|
RefreshUserNamesJob |
Обновляет имена пользователей каждый час |
|
RefreshUserMenuItemTickersJob |
Обновляет индикаторы с количеством задач в пунктах меню пользователя с интервалом в 5 минут |
|
RemovePreparedFileStorageFilesJob |
Удаляет помеченные к удалению файлы в файловом хранилище (Диске) |
|
RemoveUnusedFilesInProvidersJob |
Удаляет из файловых провайдеров файлы, не используемые в "Первой Форме" |
|
SendRemindersJob |
Рассылает напоминания |
|
ServiceMailBoxesJob |
Проверяет сервисные почтовые ящики, обрабатывая письма с уведомлениями о прочтении или новыми комментариями, отправленными по почте (если пользователь ответит на письмо с уведомлением о комментарии, то будет создан новый, ответный комментарий с текстом из отправленного им письма) |
|
SetTaskIsOverdueJob |
Помечает задачи с превышенным срок выполнения как просроченные |
|
SmartRecurrenceJob |
Выполняет smart-расписания |
|
SqlServerQueueClearJob |
Чистит очереди Rebus |
|
SubcatTickersJob |
Обновляет показатели для дерева категорий |
|
Sync1CUsersJob |
Синхронизирует пользователей из 1C |
|
SyncAbsencesToCalendarSubcatJob |
Синхронизирует отсутствия |
|
SyncEdocumentsFromDiadocJob |
||
SyncEdocumentsFromSbisJob |
||
SyncExchangeRoutineJob |
Экспортирует контакты в адресную книгу Exchange |
|
SyncHookServiceRoutineJob |
Отправляет неотправленные клиентам события и очищает записи о старых событиях из БД |
|
SynchronizeTagsActiveTasksWithView |
Пересчитывает доступы к активным задачам по условиям тегов |
|
SynchronizeTagsTasksWithView |
Пересчитывает доступы к задачам по условиям тегов |
|
SyncOrgStructure1CJob |
Синхронизирует орг. структуру из 1C |
|
TableExtParamValuesGZipCompressJob |
Перегоняет значения атрибута ExtParamHistoryGzip в таблице базы данных ExtParamHistory (История изменения ДП) и атрибута ExtParamValueGzip в ExtParamValues (Значения ДП) в Gzip. Запускается раз в 3 минуты, и обрабатывает по 10000 строк за раз. Сначала ExtParamValues, потом ExtParamHistory. Задание не инициирует полную денормализацию, затрагивает только изменяемые ДП. Задание работает непосредственно с целевыми данными (ExtParamValue), не выполняя лишних обращений к связанной таблице ExtParams. Для денормализации данных выбирается только изменяемый табличный дополнительный параметр, а не все параметры в его категории |
|
TaskTextLogGZipCompressJob |
Сжимает историю изменения текстов задач в GZip |
|
TikaJob |
Получение текста из файлов (pdf, doc, docx, xsl, xslx, ppt, pptx, txt, xml, html), благодаря чему обеспечивается поиск по текстовым файлам: ![]() Для работы джоба необходимо предварительно добавить сервис Tika и выбрать его в общих настройках приложения (пункт "Tika Service"). Обязательным условием для работы данного задания по таймеру является наличие пользовательского ключа FileIdToStartOcr, в котором необходимо указать минимальный ID файла (из таблицы в БД "FileStorageFiles"), с которого начинается обработка файлов. Ночью с 23:00 до 07:00 задание работает без ограничения по ID для обработки всех файлов. |
|
UpdateCoworkersCacheJob |
Обновляет список коллег |
|
UpdateSubcatTickersAndUserAssistancesJob |
Обновляет показатели для дерева категорий |
|
UserAuthenticationProviderVerificationJob |
Обеспечение безопасности и соответствия политикам паролей путем автоматической проверки учетных записей пользователей и принудительного завершения сессии в случаях, когда требуется повторная аутентификация или смена пароля. Периодичность запуска задания — 15 минут. Задание выполняет двухуровневую проверку активных пользователей. Алгоритм работы: 1. Проверка политик паролей Данная проверка активируется при включении кастомной настройки приложения UserAuthenticationProviderVerificationJob_EnablePasswordScan = true. Задание идентифицирует пользователей, которые соответствуют одному из следующих критериев: •Дата установки пароля пользователя (атрибут PasswordSetDate в таблице Users) и срок действия пароля из общих настроек приложения превышена. •При создании пользователя активирован флаг Сменить пароль при входе. •Пользователь был онлайн не ранее, чем 30 дней назад (для исключения устаревших записей). Результат для найденных пользователей: в таблице базы данных Users для атрибута ReloginRequiredAfter (Требуется релогин после) устанавливается значение ServerNow. Это приводит к немедленной деактивации их текущих токенов и принудительному выходу из системы. 2. Проверка статуса в Active Directory Для всех пользователей, которые были активны в приложении (на основе атрибутов LastOnlineTime, LastMobileOnlineTime) и у которых указан SID, выполняется запрос их статуса в Active Directory. Данные для запроса в ActiveDirectory берутся из провайдера аутентификации "ActiveDirectory". Если последняя смена пароля учетной записи пользователя в ActiveDirectory (атрибут pwdLastSet) произошла позже последнего входа пользователя в систему (атрибут lastLogin в таблице dbo.LoginsLog), будет запрошен повторный вход в систему (в таблице dbo.Users.ReloginRequired будет установлено значение 1) Если учетная запись пользователя в ActiveDirectory отключена (атрибут userAccountControl содержит флаг ACCOUNTDISABLE (2)), будет запрошен повторный вход в систему (в таблице dbo.Users.ReloginRequired будет установлено значение 1) При запросе повторного входа в систему приложение совершит переадресацию на страницу авторизации пользоватея. Джоб учитывает значение ключа UseSecureLDAP (Использование SSL при аутентификации через LDAP) в web.config / appsettings.json |
|
WarmUpPushJob |
Диагностика отправки пушей |
|
Полезные ссылки