В системе существуют регламентные операции, которые должны выполняться не в ответ на действия пользователя, а в соответствии с определенным расписанием. Подобные действия называются Заданиями и управляются в разделе "Задания по таймеру". |
---|
В таблице Сервера указан сервер системы "Первая Форма", на котором запускаются задания.
Во таблице Задания (Quartz) отображаются задания, выполняемые на открытой платформе Quartz, с указанием времени ближайшего запуска, времени последнего запуска и текущего статуса задания.
Задания по таймеру
Статусы заданий
•WAITING — ожидает следующего запуска (нормальное состояние задания).
•ACQUIRED — подготовка к запуску (задание будет выполняться следующим).
•BLOCKED — задание заблокировано.
•EXECUTING — задание выполняется в настоящее время. После выполнения статус задания будет возвращен в WAITING, или задание будет удалено, если у него больше нет повторений.
•PAUSED — задание находится в состоянии паузы до тех пор, пока расписание не выполнит команду Resume.
Активность задания
Если задание нужно остановить на какое-то время (чтобы оно не запускалось по расписанию), в настройках расписания (см выше) отключите флажок Расписание активно. В этом случае расписание перейдет в статус PAUSED.
Ручной запуск задания
Задание в статусе WAITING можно запустить вручную, вне расписания, нажав кнопку в конце соответствующей строки.
Если вручную запустить любое задание с любого веб-сервера, этот сервер появится в таблице "Сервера" в дополнительной строке. После перезапуска пула приложения эта дополнительная строка исчезнет из таблицы. |
---|
Разблокировка задания
Задание в статусе BLOCKED можно разблокировать кнопкой в конце соответствующей строки.
Если задание отображается красным цветом, проверьте его статус и выполните регламентные действия, см. раздел Обслуживание заданий "Первой Формы" в Руководстве по техподдержке.
Ошибки при выполнения заданий фиксируются в журнале.
Расписание
Чтобы изменить расписание выполнения задания, щелкните мышкой на соответствующей строке и в открывшемся окне отключите настройку Использовать стандартное расписание.
Задание использует стандартное расписание
Откроется форма для настройки расписания:
Задание использует заданное расписание
Для отключения расписания снимите отметку с опции Расписание активно.
Чтобы сохранить новые настройки, нажмите кнопку Сохранить.
Описание заданий
Задание |
Описание |
|
---|---|---|
Задания (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 |
Синхронизирует папки почтовых ящиков – определяет наличие новых писем и синхронизирует флаги "прочтено\не прочтено".
|
|
EnableDoSyncWithExchangeJob |
Включает синхронизацию с Exchange всем пользователям, у которых она была выключена с ошибкой от Exchange, а не намеренно администратором |
|
EnsureDenormCanonicalIndexesExists |
Вызывает хранимую процедуру EnsureDenormCanonicalIndexesExists |
|
EscalateOverdueSignatures |
Эскалирует просроченные подписи |
|
EventQueue1CJob |
Обрабатывает очередь событий для 1С |
|
FireUsersJob |
Увольняет пользователей, находящихся в очереди на увольнение |
|
MarkOldUnredCommentsAsReadJob |
Помечает как прочитанные все комментарии старше двух недель, если у пользователя более 200 непрочитанных комментариев |
|
OverdueCommentsNotificationJob |
Пишет комментарии в просроченные задачи (см. настройку уведомлений о просроченных задачах в категориях) |
|
OverdueNotificationJob |
Рассылает на почту отчет о просроченных задачах (см. настройку уведомлений о просроченных задачах в категориях) |
|
OverdueStepActionJob |
Выполняет просроченные переходы, для которых включена настройка "Выполнить переход когда просрочен" |
|
PayControlTransactionsSyncJob |
Синхронизация транзакций PayControl (см. ЭЦП) |
|
PrepareUnusedFileStorageFilesForRemovalJob |
Помечает на удаление неиспользуемые файлы в файловом хранилище (Диск) Неиспользуемыми являются файлы удовлетворяющие следующим условиям: •Файл не имеет связи с папкой Диска •Файл не вложен в задачу •Файл не является вложением комментария •Файл не является вложением письма •Файл не является файлом типа RedLine •Файл не вложен в ДП •Файл не является шаблоном в настройках категории •Файл не является вложением встречи календаря •Файл не является файлом мобильного лога ошибок •Файл не является иконкой используемой в настройке индикатора (счетчика) •Файл не является аватаркой пользователя •Файл не участвует в процессе подписи при помощи ЭЦП Все файлы, удовлетворяющие перечисленным условиям, будут помечаться заданием как неиспользуемые. |
|
PurgeAttachmentsJob |
Очищает удаленные файлы старше трех месяцев |
|
PurgePushLogJob |
Очищает логи пушей. |
|
OcrJob |
Используется для распознавания текста в изображениях (.img .jpg .png), благодаря чему обеспечивается поиск по графическим файлам: Задание запускается каждые 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), благодаря чему обеспечивается поиск по текстовым файлам: Для работы джоба необходимо предварительно добавить сервис 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 |
Диагностика отправки пушей |
Полезные ссылки