Мастер-Тур:Настройка заданий

Материал из Megatec
Версия от 13:02, 26 мая 2016; Kazimirskaya (обсуждение | вклад) (Обработка заданий (Jobs))
Перейти к: навигация, поиск

Более ранние версии:
До 2009.2.31 включительно


Содержание

Введение

В данной статье описаны все задания (Jobs), которые используются при работе с ПК «Мастер-Тур». Задания можно разделить на регламентные и оперативные.
Регламентные задания предназначены для удаления устаревших данных и запускаются, как правило, раз в сутки в ночное время. Регламентные задания предназначены для сохранения производительности системы. Очень важно ежедневно контролировать итоги их выполнения. В случае некорректного окончания задания или слишком продолжительной работы (задание не успевает отработать за ночь) необходимо принимать меры к исправлению ситуации.
Оперативные задания предназначены для оперативного изменения определенных процессов в программе (очистка кеша квот, обработка измененных цен и т.д.) и запускаются с разной периодичностью (один или несколько раз в несколько минут) в зависимости от функциональности.
Рекомендации по периодичности запуска смотрите в таблицах ниже.

Создание заданий (Jobs)

Предупреждение


Перед созданием заданий необходимо убедиться, что установлен и запущен SQL Server Agent.
При использовании Express-издания Microsoft SQL Server вместо заданий sql-сервера используется планировщик заданий Windows


Список стандартных заданий (Jobs)

Jobs_Standart (выполняется по основным и поисковым базам данных)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
Регламентные задания
mwCleanAndReindex mwCleaner
mwReindex
1 сутки
(ночью)
Основная база и поисковая Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
mwRemoveDeletedNightly mwRemoveDeleted 1 сутки
(ночью)
Основная база или поисковая при репликации Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня.
mwSyncDictionaryData mwSyncDictionaryData 1 1 сутки
(ночью)
Основная база или поисковая при репликации Устанавливается при репликации. Обновляет справочные данные в поисковых таблицах.
С релиза 2009.2.21.0, если не используется репликация, необходимо устанавливать на основной базе.
Оперативные задания
ClearCacheQuotas ClearQuotaCache 1 минута Основная база или поисковая при репликации Удаляет записи из кеша квот с истекшим сроком хранения.
С релиза 2009.2.20.15 является обязательным.
mwCheckPriceTables mwCheckPriceTables 2 минуты Основная база Создает новую таблицу при выставлении тура в новой стране/городе вылета, которой раньше не было.
Обрабатывается на среде с сегментированием без репликации.
mwReplDisableDeletedPricesOnline mwReplDisableDeletedPrices 3 минуты
днем
Поисковая база Помечает записи в поисковых таблицах как неактивные.
mwReplProcessQueueUpdate mwReplProcessQueueUpdate 30 секунд Поисковая база Обрабатывается с релиза 2009.2.20.12. Устанавливается при репликации. Обрабатывает изменения цен в поисковых таблицах.
mwReplQueueManagerDivide_xxx mwReplProcessQueueDivide 1 минута Поисковая база Устанавливается при репликации. Обрабатывает выставление, снятие и удаление туров из онлайна. Для ускорения выставления туров в интернет рекомендуем устанавливать не больше 5-ти таких заданий. Оптимально – 3.
mwSyncDataWithMainDB mwSyncDataWithMainDB 10 минут Поисковая база Обрабатывается с релиза 2009.2.21.0. Переносит данные на поисковую базу данных по квотам, расписаниям и суточным ценам, которые стали актуальными.


Список заданий (Jobs) для дополнительных модулей

Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
RecalculatePriceListScheduler RecalculatePriceListScheduler 5 минут
(с 22:00 по 08:00)
Основная база Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов.


Job_RecalculateByTime (Отложенный расчет)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
RecalculateByTime RecalculateByTime 5 минут
(с 22:00 по 08:00)
Основная база Запускает туры на расчет, запланированные отложенным расчетом.


Job_CorrectionCalculatedPrice (Корректировка рассчитанных цен, если используется репликация)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
mwReplCopyTpPricesUpdated CopyTpPricesUpdatedToSubscriptions 5 минут Основная база Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера.
CorrectionCalculatedPriceSubscriber CorrectionCalculatedPrice_RunSubscriber 5 минут Поисковая база Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.


Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
mwReplDisableDeletedPricesOnline mwReplDisableDeletedPrices 3 минуты
днем
Основная база Обрабатывается с релиза 2009.2.20.12. Помечает записи в поисковых таблицах как неактивные.
mwRemoveDeletedNightly mwRemoveDeleted 1 сутки
(ночью)
Основная база Обрабатывается с релиза 2009.2.20.12. Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня.


Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
ProcessCharterDeleteQueue ProcessCharterDeleteQueue 1 час Основная база и поисковая Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках.


Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
QuotaTypeTransfer TransferServices true 30 минут Основная база Производит пересадку услуг в более приоритетные квоты.


Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
SetWrongProcessedServicesToQuota SetWrongProcessedServicesToQuota 10 минут Основная база Обрабатывается с релиза 11.5. Производит поиск и повторную рассадку в квоты некорректно обработанных услуг.


Jobs_DC (Динамическое ценообразование, 11 версия)

Название задания (Job Name) Запускаемая хранимая процедура Интервал запуска Где устанавливается Описание
DC_ReCalculate_CreateNextSaleDate ReCalculate_CreateNextSaleDate 2 часа Основная база Создает цены на будущие даты (на 2 дня вперед).
DC_ReCalculate_MigrateToPrice ReCalculate_MigrateToPrice 1 минута Основная база Переносит цены, наценки, доплаты в поисковые таблицы.
DC_ReCalculateAddCosts ReCalculateAddCosts 30 секунд Основная база Рассчитывает доплаты.
DC_ReCalculateCosts ReCalculateCosts 1 минута Основная база Рассчитывает цены.
DC_ReCalculate_GrossMigrate ReCalculate_GrossMigrate 1 минута Основная база Переносит цены в общую таблицу.
DC_ReCalculate_MarginMigrate ReCalculate_MarginMigrate 1 минута Основная база Переносит наценки в общую таблицу.
DC_ReCalculateMargin ReCalculateMargin 1 минута Основная база Рассчитывает наценки.
DC_ReCalculateNextCosts ReCalculateNextCosts 1 минута Основная база Рассчитывает цены на будущие даты.
DC_ReCalculateSaleDate ReCalculateSaleDate 1 минута Основная база Обновляет цены с наступившей датой продажи.
DC_CostOfferChangeState CostOfferChangeState 30 секунд Основная база Активирует ценовые блоки.
mwCleanAndReindex mwCleaner
mwReindex
1 сутки
(ночью)
Основная база Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.


Обработка заданий (Jobs)

Job_mwSyncDictionaryData (Обновление справочных данных в поисковых таблицах)

Начиная с релиза 9220SP32 хранимая процедура mwSyncDictionaryData более не рекомендуется к использованию и удалена из состава БД ПК Мастер-тур. Следует отключить или удалить задание Job_mwSyncDictionaryData.

Job_mwSyncDictionarySpoData (Обновление справочных данных для поисковых фильтров)

Для принудительного запуска механизма обновления справочных данных необходимо вручную вызвать хранимую процедуру mwSyncDictionarySpoData с нужными параметрами. Хранимая процедура mwSyncDictionarySpoData может принимать следующие параметры:

  • @update_fields – обрабатываются следующие значения параметров:
    • COUNTRY (sd_cnname )
    • HOTEL (sd_hdstars, sd_ctkey, sd_rskey, sd_hdname, sd_hotelurl, pt_hdstars, pt_ctkey, pt_rskey, pt_hdname, pt_hotelurl)
    • CITY (sd_ctfromname, sd_ctname, pt_ctname)
    • RESORT (sd_rsname, pt_rsname)
    • TOUR (sd_tourname, sd_tourtype, pt_tourname, pt_toururl, pt_tourtype)
    • TOURTYPE (sd_tourtypename)
    • PANSION (sd_pncode, pt_pnname, pt_pncode)
    • TP_TOUR (sd_tourvalid, pt_tourcreated, pt_tourvalid, pt_rate)
  • @enableLogging – обрабатываются следующие значения параметров:
    • 1 – включена запись в таблицу SystemLog сообщений о результатах выполнения каждого из шагов работы хранимой процедуры
    • 0 – отключена (значение по умолчанию)

Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру.

Пример:

  • Для синхронизации всех справочных данных для поисковых фильтров необходимо выполнить на базе данных запрос:
EXEC mwSyncDictionarySpoData
  • Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос:
EXEC mwSyncDictionarySpoData 'country,tourtype'
Алгоритм настройки расписания выполнения Job_mwSyncDictionarySpoData

Если mwSyncDictionarySpoData запускается в ночное время, то необходимо проследить, чтобы время выполнения не совпадало со временем выполнения других ночных заданий, таких как: mwCleanAndReindex, mwRemoveDeletedNightly, т.к. это может привести к ситуации взаимной блокировки, при этом выполнение одного из заданий будет автоматически прервано сервером, или к ситуации, когда одно задание блокирует выполнение другого, при этом оба задания выполнятся успешно, но за гораздо больше времени, чем обычно. Для того, чтобы избежать таких ситуаций необходимо настроить расписание выполнения заданий таким образом, чтобы время их выполнения не пересекалось или пересекалось минимально. Ниже приведены рекомендации по настройке задания.

  • определить список заданий, выполняющихся в ночное время;
  • определить для каждого задания среднюю продолжительность выполнения;
  • определить последовательность запуска заданий (рекомендуемая последовательность):
    • mwRemoveDeletedNightly
    • mwCleanAndReindex
    • mwSyncDictionarySpoData, mwSyncDictionaryPriceData
  • определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения.

Job_ mwSyncDictionaryPriceData (Обновление справочных данных между справочниками и поисковыми таблицами)

Для принудительного запуска механизма обновления справочных данных необходимо вручную вызвать хранимую процедуру mwSyncDictionaryPriceData с нужными параметрами. Хранимая процедура mwSyncDictionaryPriceData может принимать следующие параметры:

  • @jobID – уникальный идентификатор каждого работающего экземпляра хранимой процедуры
  • @update_fields – обрабатываются следующие значения параметров:
    • HOTEL (sd_hdstars, sd_ctkey, sd_rskey, sd_hdname, sd_hotelurl, pt_hdstars, pt_ctkey, pt_rskey, pt_hdname, pt_hotelurl)
    • TOUR (sd_tourname, sd_tourtype, pt_tourname, pt_toururl, pt_tourtype)
    • ROOM (pt_rmname, pt_rmcode, pt_rmorder)
    • ACCOMODATION (pt_acname, pt_accode, pt_acorder)
    • TP_TOUR (sd_tourvalid, pt_tourcreated, pt_tourvalid, pt_rate)
  • @enableLogging – обрабатываются следующие значения параметров:
    • 1 – включена запись в таблицу SystemLog сообщений о результатах выполнения каждого из шагов работы хранимой процедуры
    • 0 – отключена (значение по умолчанию)

Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру.

Пример:

  • Для синхронизации всех данных между справочниками и поисковыми таблицами необходимо выполнить на базе данных запрос:
EXEC mwSyncDictionaryPriceData 1
  • Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос:
EXEC mwSyncDictionaryPriceData 1, 'country,tourtype'
Алгоритм настройки расписания выполнения Job_mwSyncDictionaryPriceData

Если Job_mwSyncDictionaryPriceData запускается в ночное время, то необходимо проследить, чтобы время выполнения не совпадало со временем выполнения других ночных заданий, таких как: mwCleanAndReindex, mwRemoveDeletedNightly, т.к. это может привести к ситуации взаимной блокировки, при этом выполнение одного из заданий будет автоматически прервано сервером, или к ситуации, когда одно задание блокирует выполнение другого, при этом оба задания выполнятся успешно, но за гораздо больше времени, чем обычно. Для того, чтобы избежать таких ситуаций необходимо настроить расписание выполнения заданий таким образом, чтобы время их выполнения не пересекалось или пересекалось минимально. Ниже приведены рекомендации по настройке задания.

  • определить список заданий, выполняющихся в ночное время;
  • определить для каждого задания среднюю продолжительность выполнения;
  • определить последовательность запуска заданий (рекомендуемая последовательность):
    • mwRemoveDeletedNightly
    • mwCleanAndReindex
    • mwSyncDictionarySpoData, mwSyncDictionaryPriceData
  • определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения. Необходимо учитывать также, что Job_mwSyncDictionaryPriceData работает с поисковыми таблицами и может замедлить поиск в ПК «Мастер-Веб» и выставление туров в онлайн в ПК «Мастер-Тур», в том случае, если задание настраивается на рабочее время (днем).