Мастер-Тур:Настройка заданий — различия между версиями
[досмотренная версия] | [досмотренная версия] |
Biryukov (обсуждение | вклад) |
(→Jobs_Standart (выполняется по основным и поисковым базам данных)) |
||
(не показано 47 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | <table style="color:black; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"> | ||
+ | <tr> | ||
+ | <td> | ||
+ | Более ранние версии:<br /> | ||
+ | [http://wiki.megatec.ru/index.php?title=Мастер-Тур:Настройка_заданий&oldid=16024 До 2009.2.31 включительно]<br /> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br /> | ||
==Введение== | ==Введение== | ||
− | В данной статье описаны все задания (Jobs), которые используются при работе с ПК «Мастер-Тур». | + | В данной статье описаны все задания (Jobs), которые используются при работе с ПК «Мастер-Тур». Задания можно разделить на '''регламентные''' и '''оперативные'''.<br /> |
+ | '''Регламентные''' задания предназначены для удаления устаревших данных и запускаются, как правило, раз в сутки в ночное время. Регламентные задания предназначены для сохранения производительности системы. Очень важно ежедневно контролировать итоги их выполнения. В случае некорректного окончания задания или слишком продолжительной работы (задание не успевает отработать за ночь) необходимо принимать меры к исправлению ситуации.<br /> | ||
+ | '''Оперативные''' задания предназначены для оперативного изменения определенных процессов в программе (очистка кеша квот, обработка измененных цен и т.д.) и запускаются с разной периодичностью (один или несколько раз в несколько минут) в зависимости от функциональности.<br /> | ||
+ | Рекомендации по периодичности запуска смотрите в таблицах ниже. | ||
==Создание заданий (Jobs)== | ==Создание заданий (Jobs)== | ||
Строка 9: | Строка 21: | ||
<br /> | <br /> | ||
− | ==Список заданий (Jobs)== | + | ==Список стандартных заданий (Jobs)== |
− | ==== | + | ====Jobs_Standart (выполняется по основным и поисковым базам данных)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 18: | Строка 30: | ||
| '''Где устанавливается''' | | '''Где устанавливается''' | ||
| '''Описание''' | | '''Описание''' | ||
+ | |- | ||
+ | |||
+ | |colspan="5" |''Регламентные задания'' | ||
+ | |- | ||
+ | | mwCleanAndReindex | ||
+ | | mwCleaner<br />mwReindex | ||
+ | | 1 сутки<br />(ночью) | ||
+ | | Основная база и поисковая | ||
+ | | Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах. | ||
+ | |- | ||
+ | | mwRemoveDeletedNightly | ||
+ | | mwRemoveDeleted | ||
+ | | 1 сутки<br />(ночью) | ||
+ | | Основная база или поисковая при репликации | ||
+ | | Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня. | ||
+ | |- | ||
+ | | mwSyncDictionaryData | ||
+ | | mwSyncDictionaryData 1 | ||
+ | | 1 сутки<br />(ночью) | ||
+ | | Основная база или поисковая при репликации | ||
+ | | Устанавливается при репликации. Обновляет справочные данные в поисковых таблицах.<br>'''С релиза 2009.2.21.0, если не используется репликация, необходимо устанавливать на основной базе.'''<br> <span style="color:red">'''Внимание!'''</span> <br> Начиная с релиза '''9220SP32''' хранимая процедура mwSyncDictionaryData более ''не рекомендуется к использованию'' и удалена из состава БД ПК «Мастер-Тур». | ||
+ | Следует ''отключить'' или ''удалить'' задание '''Job_mwSyncDictionaryData'''. | ||
+ | |- | ||
+ | | mwSyncDictionarySPOData | ||
+ | | mwSyncDictionarySPOData | ||
+ | | 1 и более раз в сутки<br />(ночью) | ||
+ | | Основная база или поисковая при репликации | ||
+ | | <span style="color:red">'''Внимание!'''</span> <br> Данное задание используется, начиная с релиза '''9220SP32'''.<br> Обновляет справочные данные для поисковых фильтров. | ||
+ | |- | ||
+ | | mwSyncDictionaryPriceData | ||
+ | | mwSyncDictionaryPriceData 7 | ||
+ | | | ||
+ | * На базе без сегментирования: 1 и более раз в сутки<br />(ночью)<br> | ||
+ | * На базе с сегментированием: 1 и более раз каждые N минут в определённый промежуток времени, например, с 00:00 до 06:00.<br />(ночью) | ||
+ | | Основная база или поисковая при репликации | ||
+ | | <span style="color:red">'''Внимание!'''</span> <br> Данное задание используется, начиная с релиза '''9220SP32'''.<br> Обновляет справочные данные в поисковых таблицах. | ||
+ | |- | ||
+ | |colspan="5" |''Оперативные задания'' | ||
|- | |- | ||
| ClearCacheQuotas | | ClearCacheQuotas | ||
| ClearQuotaCache | | ClearQuotaCache | ||
+ | | 1 минута | ||
+ | | Основная база или поисковая при репликации | ||
+ | | Удаляет записи из кеша квот с истекшим сроком хранения.<br>'''С релиза 2009.2.20.15 является обязательным.''' | ||
+ | |- | ||
+ | | mwCheckPriceTables | ||
+ | | mwCheckPriceTables | ||
+ | | 2 минуты | ||
+ | | Основная база | ||
+ | | Создает новую таблицу при выставлении тура в новой стране/городе вылета, которой раньше не было.<br \>'''Обрабатывается на среде с сегментированием без репликации'''. | ||
+ | |- | ||
+ | | mwReplDisableDeletedPricesOnline | ||
+ | | mwReplDisableDeletedPrices | ||
+ | | 3 минуты<br />днем | ||
+ | | Поисковая база | ||
+ | | Помечает записи в поисковых таблицах как неактивные. | ||
+ | |- | ||
+ | | mwReplProcessQueueUpdate | ||
+ | | mwReplProcessQueueUpdate | ||
+ | | 30 секунд | ||
+ | | Поисковая база | ||
+ | | '''Обрабатывается с релиза 2009.2.20.12'''. Устанавливается при репликации. Обрабатывает изменения цен в поисковых таблицах. | ||
+ | |- | ||
+ | | mwReplQueueManagerDivide_xxx | ||
+ | | mwReplProcessQueueDivide | ||
+ | | 1 минута | ||
+ | | Поисковая база | ||
+ | | Устанавливается при репликации. Обрабатывает выставление, снятие и удаление туров из онлайна. Для ускорения выставления туров в интернет рекомендуем устанавливать не больше 5-ти таких заданий. Оптимально – 3. | ||
+ | |- | ||
+ | | mwSyncDataWithMainDB | ||
+ | | mwSyncDataWithMainDB | ||
| 10 минут | | 10 минут | ||
− | | Основная база | + | | Поисковая база |
− | | | + | | '''Обрабатывается с релиза 2009.2.21.0'''. Переносит данные на поисковую базу данных по квотам, расписаниям и суточным ценам, которые стали актуальными. |
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ==Список заданий (Jobs) для дополнительных модулей== | ||
+ | |||
+ | ====Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)==== | ||
+ | {| class="wikitable" | ||
+ | | '''Название задания (Job Name)''' | ||
+ | | '''Запускаемая хранимая процедура''' | ||
+ | | '''Интервал запуска''' | ||
+ | | '''Где устанавливается''' | ||
+ | | '''Описание''' | ||
+ | |- | ||
+ | | RecalculatePriceListScheduler | ||
+ | | RecalculatePriceListScheduler | ||
+ | | 5 минут<br />(с 22:00 по 08:00) | ||
+ | | Основная база | ||
+ | | Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов. | ||
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ====Job_RecalculateByTime (Отложенный расчет)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 36: | Строка 135: | ||
| '''Описание''' | | '''Описание''' | ||
|- | |- | ||
− | | | + | | RecalculateByTime |
− | | | + | | RecalculateByTime |
− | | | + | | 5 минут<br />(с 22:00 по 08:00) |
− | | Основная база | + | | Основная база |
− | | | + | | Запускает туры на расчет, запланированные отложенным расчетом. |
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ====Job_CorrectionCalculatedPrice (Корректировка рассчитанных цен, если используется репликация)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 53: | Строка 152: | ||
| '''Описание''' | | '''Описание''' | ||
|- | |- | ||
− | | | + | | mwReplCopyTpPricesUpdated |
− | | | + | | CopyTpPricesUpdatedToSubscriptions |
− | | | + | | 5 минут |
| Основная база | | Основная база | ||
− | | | + | | Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера. |
+ | |- | ||
+ | | CorrectionCalculatedPriceSubscriber | ||
+ | | CorrectionCalculatedPrice_RunSubscriber | ||
+ | | 5 минут | ||
+ | | Поисковая база | ||
+ | | Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными. | ||
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ====Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 70: | Строка 175: | ||
| '''Описание''' | | '''Описание''' | ||
|- | |- | ||
− | | | + | | mwReplDisableDeletedPricesOnline |
− | | | + | | mwReplDisableDeletedPrices |
− | | | + | | 3 минуты<br />днем |
+ | | Основная база | ||
+ | | '''Обрабатывается с релиза 2009.2.20.12'''. Помечает записи в поисковых таблицах как неактивные. | ||
+ | |- | ||
+ | | mwRemoveDeletedNightly | ||
+ | | mwRemoveDeleted | ||
+ | | 1 сутки<br />(ночью) | ||
| Основная база | | Основная база | ||
− | | | + | | '''Обрабатывается с релиза 2009.2.20.12'''. Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня. |
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ====Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)==== | ||
+ | {| class="wikitable" | ||
+ | | '''Название задания (Job Name)''' | ||
+ | | '''Запускаемая хранимая процедура''' | ||
+ | | '''Интервал запуска''' | ||
+ | | '''Где устанавливается''' | ||
+ | | '''Описание''' | ||
+ | |- | ||
+ | | ProcessCharterDeleteQueue | ||
+ | | ProcessCharterDeleteQueue | ||
+ | | 1 час | ||
+ | | Основная база и поисковая | ||
+ | | Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках. | ||
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ====Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 87: | Строка 215: | ||
| '''Описание''' | | '''Описание''' | ||
|- | |- | ||
− | | | + | | QuotaTypeTransfer |
− | | | + | | TransferServices true |
− | | | + | | 30 минут |
| Основная база | | Основная база | ||
− | | | + | | Производит пересадку услуг в более приоритетные квоты. |
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ====Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)==== |
{| class="wikitable" | {| class="wikitable" | ||
| '''Название задания (Job Name)''' | | '''Название задания (Job Name)''' | ||
Строка 104: | Строка 232: | ||
| '''Описание''' | | '''Описание''' | ||
|- | |- | ||
− | | | + | | SetWrongProcessedServicesToQuota |
− | | | + | | SetWrongProcessedServicesToQuota |
− | | | + | | 10 минут |
| Основная база | | Основная база | ||
− | | | + | | '''Обрабатывается с релиза 11.5'''. Производит поиск и повторную рассадку в квоты некорректно обработанных услуг. |
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
+ | |||
+ | ====Jobs_DC (Динамическое ценообразование, 11 версия)==== | ||
+ | {| class="wikitable" | ||
+ | | '''Название задания (Job Name)''' | ||
+ | | '''Запускаемая хранимая процедура''' | ||
+ | | '''Интервал запуска''' | ||
+ | | '''Где устанавливается''' | ||
+ | | '''Описание''' | ||
|- | |- | ||
| DC_ReCalculate_CreateNextSaleDate | | DC_ReCalculate_CreateNextSaleDate | ||
Строка 163: | Строка 302: | ||
| Основная база | | Основная база | ||
| Обновляет цены с наступившей датой продажи. | | Обновляет цены с наступившей датой продажи. | ||
+ | |- | ||
+ | | DC_CostOfferChangeState | ||
+ | | CostOfferChangeState | ||
+ | | 30 секунд | ||
+ | | Основная база | ||
+ | | Активирует ценовые блоки. | ||
|- | |- | ||
| mwCleanAndReindex | | mwCleanAndReindex | ||
Строка 168: | Строка 313: | ||
| 1 сутки<br />(ночью) | | 1 сутки<br />(ночью) | ||
| Основная база | | Основная база | ||
− | | | + | | Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах. |
|- | |- | ||
|} | |} | ||
<br /> | <br /> | ||
− | ==== | + | ==Обработка заданий (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''' – отключена (значение по умолчанию) | |
− | + | ||
− | + | Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру. | |
− | + | ||
− | + | ''Пример:'' | |
− | + | * Для синхронизации всех справочных данных для поисковых фильтров необходимо выполнить на базе данных запрос: | |
− | + | <syntaxhighlight lang="sql"> | |
− | + | EXEC mwSyncDictionarySpoData | |
− | + | </syntaxhighlight> | |
− | + | * Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос: | |
− | + | <syntaxhighlight lang="sql"> | |
− | + | EXEC mwSyncDictionarySpoData 'country,tourtype' | |
− | + | </syntaxhighlight> | |
− | + | ||
− | + | =====Алгоритм настройки расписания выполнения Job_mwSyncDictionarySpoData===== | |
− | + | Если mwSyncDictionarySpoData запускается в ночное время, то необходимо проследить, чтобы время выполнения не совпадало со временем выполнения других ночных заданий, таких как: mwCleanAndReindex, mwRemoveDeletedNightly, т.к. это может привести к ситуации взаимной блокировки, при этом выполнение одного из заданий будет автоматически прервано сервером, или к ситуации, когда одно задание блокирует выполнение другого, при этом оба задания выполнятся успешно, но за гораздо больше времени, чем обычно. | |
− | + | Для того, чтобы избежать таких ситуаций необходимо настроить расписание выполнения заданий таким образом, чтобы время их выполнения не пересекалось или пересекалось минимально. | |
− | + | Ниже приведены рекомендации по настройке задания. | |
− | + | * определить список заданий, выполняющихся в ночное время; | |
− | + | * определить для каждого задания среднюю продолжительность выполнения; | |
− | + | * определить последовательность запуска заданий (рекомендуемая последовательность): | |
− | + | ** mwRemoveDeletedNightly <br /> | |
− | + | ** mwCleanAndReindex <br /> | |
− | + | ** mwSyncDictionarySpoData, mwSyncDictionaryPriceData <br /> | |
− | + | * определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения. | |
− | + | ||
− | + | ===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''' – отключена (значение по умолчанию) | ||
+ | |||
+ | Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру. | ||
+ | |||
+ | ''Пример:'' | ||
+ | * Для синхронизации всех данных между справочниками и поисковыми таблицами необходимо выполнить на базе данных запрос: | ||
+ | <syntaxhighlight lang="sql"> | ||
+ | EXEC mwSyncDictionaryPriceData 1 | ||
+ | </syntaxhighlight> | ||
+ | * Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос: | ||
+ | <syntaxhighlight lang="sql"> | ||
+ | EXEC mwSyncDictionaryPriceData 1, 'country,tourtype' | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | =====Алгоритм настройки расписания выполнения Job_mwSyncDictionaryPriceData===== | ||
+ | Если Job_mwSyncDictionaryPriceData запускается в ночное время, то необходимо проследить, чтобы время выполнения не совпадало со временем выполнения других ночных заданий, таких как: mwCleanAndReindex, mwRemoveDeletedNightly, т.к. это может привести к ситуации взаимной блокировки, при этом выполнение одного из заданий будет автоматически прервано сервером, или к ситуации, когда одно задание блокирует выполнение другого, при этом оба задания выполнятся успешно, но за гораздо больше времени, чем обычно. | ||
+ | Для того, чтобы избежать таких ситуаций необходимо настроить расписание выполнения заданий таким образом, чтобы время их выполнения не пересекалось или пересекалось минимально. | ||
+ | Ниже приведены рекомендации по настройке задания. | ||
+ | * определить список заданий, выполняющихся в ночное время; | ||
+ | * определить для каждого задания среднюю продолжительность выполнения; | ||
+ | * определить последовательность запуска заданий (рекомендуемая последовательность): | ||
+ | ** mwRemoveDeletedNightly <br /> | ||
+ | ** mwCleanAndReindex <br /> | ||
+ | ** mwSyncDictionarySpoData, mwSyncDictionaryPriceData <br /> | ||
+ | * определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения. Необходимо учитывать также, что Job_mwSyncDictionaryPriceData работает с поисковыми таблицами и может замедлить поиск в ''ПК «Мастер-Веб»'' и выставление туров в онлайн в ''ПК «Мастер-Тур»'', в том случае, если задание настраивается на рабочее время (днем). | ||
+ | [[Category:Мастер-Тур_Администрирование]] |
Текущая версия на 12:32, 4 августа 2016
Более ранние версии: |
Содержание
- 1 Введение
- 2 Создание заданий (Jobs)
- 3 Список стандартных заданий (Jobs)
- 4 Список заданий (Jobs) для дополнительных модулей
- 4.1 Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)
- 4.2 Job_RecalculateByTime (Отложенный расчет)
- 4.3 Job_CorrectionCalculatedPrice (Корректировка рассчитанных цен, если используется репликация)
- 4.4 Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)
- 4.5 Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)
- 4.6 Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)
- 4.7 Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)
- 4.8 Jobs_DC (Динамическое ценообразование, 11 версия)
- 5 Обработка заданий (Jobs)
Введение
В данной статье описаны все задания (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, если не используется репликация, необходимо устанавливать на основной базе. Внимание! Начиная с релиза 9220SP32 хранимая процедура mwSyncDictionaryData более не рекомендуется к использованию и удалена из состава БД ПК «Мастер-Тур». Следует отключить или удалить задание Job_mwSyncDictionaryData. |
mwSyncDictionarySPOData | mwSyncDictionarySPOData | 1 и более раз в сутки (ночью) |
Основная база или поисковая при репликации | Внимание! Данное задание используется, начиная с релиза 9220SP32. Обновляет справочные данные для поисковых фильтров. |
mwSyncDictionaryPriceData | mwSyncDictionaryPriceData 7 |
|
Основная база или поисковая при репликации | Внимание! Данное задание используется, начиная с релиза 9220SP32. Обновляет справочные данные в поисковых таблицах. |
Оперативные задания | ||||
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
- mwRemoveDeletedNightly
- определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения.
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
- mwRemoveDeletedNightly
- определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения. Необходимо учитывать также, что Job_mwSyncDictionaryPriceData работает с поисковыми таблицами и может замедлить поиск в ПК «Мастер-Веб» и выставление туров в онлайн в ПК «Мастер-Тур», в том случае, если задание настраивается на рабочее время (днем).