Мастер-Тур:Настройка заданий — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Job_mwReplCopyTpPricesUpdated (Корректировщик рассчитанных цен, нужен при работе с репликацией))
(Jobs_Standart (выполняется по основным и поисковым базам данных))
 
(не показаны 42 промежуточные версии 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)==
  
====Job_ClearCacheQuotas (Очистка кеша квот)====
+
====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 />
 
<br />
  
====Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)====
+
==Список заданий (Jobs) для дополнительных модулей==
 +
 
 +
====Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 36: Строка 118:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| ProcessCharterDeleteQueue
+
| RecalculatePriceListScheduler
| ProcessCharterDeleteQueue
+
| RecalculatePriceListScheduler
| 1 час
+
| 5 минут<br />(с 22:00 по 08:00)
| Основная база и поисковая
+
| Основная база
| Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках.
+
| Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_QuotaTypeTransfer (Пересадка в приоритетные квоты)====
+
====Job_RecalculateByTime (Отложенный расчет)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 53: Строка 135:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| QuotaTypeTransfer
+
| RecalculateByTime
| TransferServices true
+
| RecalculateByTime
| 3 часа
+
| 5 минут<br />(с 22:00 по 08:00)
 
| Основная база
 
| Основная база
| Производит пересадку услуг в более приоритетные квоты.
+
| Запускает туры на расчет, запланированные отложенным расчетом.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_RecalculateByTime (Отложенный расчет)====
+
====Job_CorrectionCalculatedPrice (Корректировка рассчитанных цен, если используется репликация)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 70: Строка 152:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| RecalculateByTime
+
| mwReplCopyTpPricesUpdated
| RecalculateByTime
+
| CopyTpPricesUpdatedToSubscriptions
| 5 минут<br />(с 22:00 по 08:00)
+
| 5 минут
 
| Основная база
 
| Основная база
| Запускает туры на расчет, запланированные отложенным расчетом.
+
| Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера.
 +
|-
 +
| CorrectionCalculatedPriceSubscriber
 +
| CorrectionCalculatedPrice_RunSubscriber
 +
| 5 минут
 +
| Поисковая база
 +
| Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)====
+
====Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 87: Строка 175:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| RecalculatePriceListScheduler
+
| mwReplDisableDeletedPricesOnline
| RecalculatePriceListScheduler
+
| mwReplDisableDeletedPrices
| 5 минут<br />(с 22:00 по 08:00)
+
| 3 минуты<br />днем
 +
| Основная база
 +
| '''Обрабатывается с релиза 2009.2.20.12'''. Помечает записи в поисковых таблицах как неактивные.
 +
|-
 +
| mwRemoveDeletedNightly
 +
| mwRemoveDeleted
 +
| 1 сутки<br />(ночью)
 
| Основная база
 
| Основная база
| Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов.
+
| '''Обрабатывается с релиза 2009.2.20.12'''. Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_mwCheckPriceTables (Создание поисковых таблиц при сегментировании без репликации)====
+
====Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 104: Строка 198:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| mwCheckPriceTables
+
| ProcessCharterDeleteQueue
| mwCheckPriceTables
+
| ProcessCharterDeleteQueue
| 2 минуты
+
| 1 час
| Основная база
+
| Основная база и поисковая
| Создает новую таблицу при выставлении тура в новой стране/городе вылета, которой раньше не было.
+
| Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_mwReplCopyTpPricesUpdated и Job_CorrectionCalculatedPriceSubscriber (Корректировка рассчитанных цен, если используется репликация)====
+
====Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 121: Строка 215:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| mwReplCopyTpPricesUpdated
+
| QuotaTypeTransfer
| CopyTpPricesUpdatedToSubscriptions
+
| TransferServices true
| 5 минут
+
| 30 минут
 
| Основная база
 
| Основная база
| Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера.
+
| Производит пересадку услуг в более приоритетные квоты.
|-
 
| CorrectionCalculatedPriceSubscriber
 
| CorrectionCalculatedPrice_RunSubscriber
 
| 5 минут
 
| Поисковая база
 
| Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.
 
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Jobs_DC (Динамическое ценообразование)====
+
====Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 144: Строка 232:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| DC_CostOfferChangeState
+
| SetWrongProcessedServicesToQuota
| CostOfferChangeState
+
| SetWrongProcessedServicesToQuota
| 30 секунд
+
| 10 минут
 
| Основная база
 
| Основная база
| Обрабатывает ценовые блоки из очереди в таблице [QueuesCostOffers].
+
| '''Обрабатывается с релиза 11.5'''. Производит поиск и повторную рассадку в квоты некорректно обработанных услуг.
 +
|-
 +
|}
 +
<br />
 +
 
 +
====Jobs_DC (Динамическое ценообразование, 11 версия)====
 +
{| class="wikitable"
 +
| '''Название задания (Job Name)'''
 +
| '''Запускаемая хранимая процедура'''
 +
| '''Интервал запуска'''
 +
| '''Где устанавливается'''
 +
| '''Описание'''
 
|-
 
|-
 
| DC_ReCalculate_CreateNextSaleDate
 
| DC_ReCalculate_CreateNextSaleDate
Строка 203: Строка 302:
 
| Основная база
 
| Основная база
 
| Обновляет цены с наступившей датой продажи.
 
| Обновляет цены с наступившей датой продажи.
 +
|-
 +
| DC_CostOfferChangeState
 +
| CostOfferChangeState
 +
| 30 секунд
 +
| Основная база
 +
| Активирует ценовые блоки.
 
|-
 
|-
 
| mwCleanAndReindex
 
| mwCleanAndReindex
Строка 208: Строка 313:
 
| 1 сутки<br />(ночью)
 
| 1 сутки<br />(ночью)
 
| Основная база
 
| Основная база
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
+
| Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Jobs_MW (Репликация)====
+
==Обработка заданий (Jobs)==
{| class="wikitable"
+
===Job_mwSyncDictionaryData (Обновление справочных данных в поисковых таблицах)===
| '''Название задания (Job Name)'''
+
Начиная с релиза '''9220SP32''' хранимая процедура mwSyncDictionaryData более ''не рекомендуется к использованию'' и удалена из состава БД ПК «Мастер-Тур».
| '''Запускаемая хранимая процедура'''
+
Следует ''отключить'' или ''удалить'' задание '''Job_mwSyncDictionaryData'''.
| '''Интервал запуска'''
+
 
| '''Где устанавливается'''
+
===Job_mwSyncDictionarySpoData (Обновление справочных данных для поисковых фильтров)===
| '''Описание'''
+
Для принудительного запуска механизма обновления справочных данных необходимо вручную вызвать хранимую процедуру mwSyncDictionarySpoData с нужными параметрами.
|-
+
Хранимая процедура mwSyncDictionarySpoData может принимать следующие параметры:
| mwRemoveDeletedNightly
+
* '''@update_fields''' – обрабатываются следующие значения параметров:
| mwRemoveDeleted
+
** '''COUNTRY''' (sd_cnname )
| 1 сутки<br />(ночью)
+
** '''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)
| mwReplDisableDeletedPricesOnline
+
** '''TOURTYPE''' (sd_tourtypename)
| mwReplDisableDeletedPrices
+
** '''PANSION''' (sd_pncode, pt_pnname, pt_pncode)
| 3 минуты<br />днем
+
** '''TP_TOUR''' (sd_tourvalid, pt_tourcreated, pt_tourvalid, pt_rate)
| Основная база или поисковая при репликации
+
* '''@enableLogging''' – обрабатываются следующие значения параметров:
| Помечает записи в поисковых таблицах как неактивные.
+
** '''1''' – включена запись в таблицу SystemLog сообщений о результатах выполнения каждого из шагов работы хранимой процедуры
|-
+
** '''0''' – отключена (значение по умолчанию)
| mwReplProcessQueueUpdate
+
 
| mwReplProcessQueueUpdate
+
Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру.
| 1 минута
+
 
| Основная база и поисковая
+
''Пример:''
| Устанавливается при репликации и ДЦ. Обрабатывает изменения цен в поисковых таблицах.
+
* Для синхронизации всех справочных данных для поисковых фильтров необходимо выполнить на базе данных запрос:
|-
+
<syntaxhighlight lang="sql">
| mwReplQueueManagerDivide_xxx
+
EXEC mwSyncDictionarySpoData
| mwReplProcessQueueDivide
+
</syntaxhighlight>
| 1 минута
+
* Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос:
| Основная база или поисковая при репликации
+
<syntaxhighlight lang="sql">
| Устанавливается при репликации. Обрабатывает выставление, снятие и удаление туров из онлайна. Для ускорения выставления туров в интернет рекомендуем устанавливать не больше 5-ти таких заданий. Оптимально – 3.
+
EXEC mwSyncDictionarySpoData 'country,tourtype'
|-
+
</syntaxhighlight>
| mwSyncDictionaryData
+
 
| mwSyncDictionaryData 1
+
=====Алгоритм настройки расписания выполнения Job_mwSyncDictionarySpoData=====
| 1 сутки<br />(ночью)
+
Если mwSyncDictionarySpoData запускается в ночное время, то необходимо проследить, чтобы время выполнения не совпадало со временем выполнения других ночных заданий, таких как: mwCleanAndReindex, mwRemoveDeletedNightly, т.к. это может привести к ситуации взаимной блокировки, при этом выполнение одного из заданий будет автоматически прервано сервером, или к ситуации, когда одно задание блокирует выполнение другого, при этом оба задания выполнятся успешно, но за гораздо больше времени, чем обычно.
| Основная база или поисковая при репликации
+
Для того, чтобы избежать таких ситуаций необходимо настроить расписание выполнения заданий таким образом, чтобы время их выполнения не пересекалось или пересекалось минимально.
| Устанавливается при репликации. Обновляет справочные данные в поисковых таблицах.
+
Ниже приведены рекомендации по настройке задания.
|-
+
* определить список заданий, выполняющихся в ночное время;
| mwCleanAndReindex
+
* определить для каждого задания среднюю продолжительность выполнения;
| mwCleaner<br />mwReindex
+
* определить последовательность запуска заданий (рекомендуемая последовательность):
| 1 сутки<br />(ночью)
+
**  mwRemoveDeletedNightly <br />
| Основная база и поисковая
+
**  mwCleanAndReindex <br />
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
+
**  mwSyncDictionarySpoData, mwSyncDictionaryPriceData <br />  
|-
+
* определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения.
|}
+
 
<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

Более ранние версии:
До 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, если не используется репликация, необходимо устанавливать на основной базе.
Внимание!
Начиная с релиза 9220SP32 хранимая процедура mwSyncDictionaryData более не рекомендуется к использованию и удалена из состава БД ПК «Мастер-Тур».

Следует отключить или удалить задание Job_mwSyncDictionaryData.

mwSyncDictionarySPOData mwSyncDictionarySPOData 1 и более раз в сутки
(ночью)
Основная база или поисковая при репликации Внимание!
Данное задание используется, начиная с релиза 9220SP32.
Обновляет справочные данные для поисковых фильтров.
mwSyncDictionaryPriceData mwSyncDictionaryPriceData 7
  • На базе без сегментирования: 1 и более раз в сутки
    (ночью)
  • На базе с сегментированием: 1 и более раз каждые N минут в определённый промежуток времени, например, с 00:00 до 06:00.
    (ночью)
Основная база или поисковая при репликации Внимание!
Данное задание используется, начиная с релиза 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
  • определить количество нерабочих ночных часов, оценить смогут ли ночные задания с учётом оценки их среднего времени работы отработать за это время, если да, то настраиваем расписание без пересечения времени выполнения заданий, иначе настраиваем расписание запуска заданий с наименьшим пересечением времени выполнения.

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 работает с поисковыми таблицами и может замедлить поиск в ПК «Мастер-Веб» и выставление туров в онлайн в ПК «Мастер-Тур», в том случае, если задание настраивается на рабочее время (днем).