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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Jobs_Standart (выполняется по основным и поисковым базам данных))
 
(не показано 25 промежуточных версий 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
Строка 23: Строка 73:
 
| 1 минута
 
| 1 минута
 
| Основная база или поисковая при репликации
 
| Основная база или поисковая при репликации
| Удаляет записи из кеша квот с истекшим сроком хранения.
+
| Удаляет записи из кеша квот с истекшим сроком хранения.<br>'''С релиза 2009.2.20.15 является обязательным.'''
 
|-
 
|-
|}
+
| mwCheckPriceTables
<br />
+
| mwCheckPriceTables
 
+
| 2 минуты
====Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)====
+
| Основная база
{| class="wikitable"
+
| Создает новую таблицу при выставлении тура в новой стране/городе вылета, которой раньше не было.<br \>'''Обрабатывается на среде с сегментированием без репликации'''.
| '''Название задания (Job Name)'''
+
|-
| '''Запускаемая хранимая процедура'''
+
| mwReplDisableDeletedPricesOnline
| '''Интервал запуска'''
+
| mwReplDisableDeletedPrices
| '''Где устанавливается'''
+
| 3 минуты<br />днем
| '''Описание'''
+
| Поисковая база
 +
| Помечает записи в поисковых таблицах как неактивные.
 
|-
 
|-
| ProcessCharterDeleteQueue
+
| mwReplProcessQueueUpdate
| ProcessCharterDeleteQueue
+
| mwReplProcessQueueUpdate
| 1 час
+
| 30 секунд
| Основная база и поисковая
+
| Поисковая база
| Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках.
+
| '''Обрабатывается с релиза 2009.2.20.12'''. Устанавливается при репликации. Обрабатывает изменения цен в поисковых таблицах.
 
|-
 
|-
|}
+
| mwReplQueueManagerDivide_xxx
<br />
+
| mwReplProcessQueueDivide
 
+
| 1 минута
====Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)====
+
| Поисковая база
{| class="wikitable"
+
| Устанавливается при репликации. Обрабатывает выставление, снятие и удаление туров из онлайна. Для ускорения выставления туров в интернет рекомендуем устанавливать не больше 5-ти таких заданий. Оптимально – 3.
| '''Название задания (Job Name)'''
 
| '''Запускаемая хранимая процедура'''
 
| '''Интервал запуска'''
 
| '''Где устанавливается'''
 
| '''Описание'''
 
 
|-
 
|-
| QuotaTypeTransfer
+
| mwSyncDataWithMainDB
| TransferServices true
+
| mwSyncDataWithMainDB
| 30 минут
+
| 10 минут
| Основная база
+
| Поисковая база
| Производит пересадку услуг в более приоритетные квоты.
+
| '''Обрабатывается с релиза 2009.2.21.0'''. Переносит данные на поисковую базу данных по квотам, расписаниям и суточным ценам, которые стали актуальными.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)====
+
==Список заданий (Jobs) для дополнительных модулей==
 +
 
 +
====Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 70: Строка 118:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| SetWrongProcessedServicesToQuota
+
| RecalculatePriceListScheduler
| SetWrongProcessedServicesToQuota
+
| RecalculatePriceListScheduler
| 10 минут
+
| 5 минут<br />(с 22:00 по 08:00)
 
| Основная база
 
| Основная база
| '''Обрабатывается с релиза 11.5'''. Производит поиск и повторную рассадку в квоты некорректно обработанных услуг.
+
| Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов.
 
|-
 
|-
 
|}
 
|}
Строка 96: Строка 144:
 
<br />
 
<br />
  
====Job_RecalculatePriceListScheduler (Планировщик перерасчета прайс-листов)====
+
====Job_CorrectionCalculatedPrice (Корректировка рассчитанных цен, если используется репликация)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 104: Строка 152:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| RecalculatePriceListScheduler
+
| mwReplCopyTpPricesUpdated
| RecalculatePriceListScheduler
+
| CopyTpPricesUpdatedToSubscriptions
| 5 минут<br />(с 22:00 по 08:00)
+
| 5 минут
 
| Основная база
 
| Основная база
| Запускает туры на расчет, запланированные планировщиком перерасчета прайс-листов.
+
| Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера.
 +
|-
 +
| CorrectionCalculatedPriceSubscriber
 +
| CorrectionCalculatedPrice_RunSubscriber
 +
| 5 минут
 +
| Поисковая база
 +
| Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_mwCheckPriceTables (Создание поисковых таблиц при сегментировании без репликации)====
+
====Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 121: Строка 175:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| mwCheckPriceTables
+
| mwReplDisableDeletedPricesOnline
| mwCheckPriceTables
+
| mwReplDisableDeletedPrices
| 2 минуты
+
| 3 минуты<br />днем
 +
| Основная база
 +
| '''Обрабатывается с релиза 2009.2.20.12'''. Помечает записи в поисковых таблицах как неактивные.
 +
|-
 +
| mwRemoveDeletedNightly
 +
| mwRemoveDeleted
 +
| 1 сутки<br />(ночью)
 
| Основная база
 
| Основная база
| Создает новую таблицу при выставлении тура в новой стране/городе вылета, которой раньше не было.
+
| '''Обрабатывается с релиза 2009.2.20.12'''. Удаляет записи из ценовых таблиц по турам, которые были сняты из онлайна или удалены в течение дня.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_mwReplCopyTpPricesUpdated и Job_CorrectionCalculatedPriceSubscriber (Корректировка рассчитанных цен, если используется репликация)====
+
====Job_ProcessCharterDeleteQueue (Изменение авиаперелета в рассчитанных турах)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 138: Строка 198:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| mwReplCopyTpPricesUpdated
+
| ProcessCharterDeleteQueue
| CopyTpPricesUpdatedToSubscriptions
+
| ProcessCharterDeleteQueue
| 5 минут
+
| 1 час
| Основная база
+
| Основная база и поисковая
| Используется при репликации для плагина Корректировка рассчитанных цен. Копирует данные таблицы tp_pricesupdated с основного на поисковые сервера.
+
| Заменяет авиаперелеты в рассчитанных турах, в оформленных путевках.
|-
 
| CorrectionCalculatedPriceSubscriber
 
| CorrectionCalculatedPrice_RunSubscriber
 
| 5 минут
 
| Поисковая база
 
| Используется при репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.
 
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
====Job_CorrectionCalculatedPriceSubscriber (Корректировка рассчитанных цен, если не используется репликация)====
+
====Job_QuotaTypeTransfer (Пересадка в приоритетные квоты, 11 версия)====
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 161: Строка 215:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| CorrectionCalculatedPriceSubscriber
+
| QuotaTypeTransfer
| CorrectionCalculatedPrice_RunSubscriber
+
| TransferServices true
| 5 минут
+
| 30 минут
 
| Основная база
 
| Основная база
| Используется без репликации для плагина Корректировка рассчитанных цен. Заполняет поисковые таблицы измененными данными.
+
| Производит пересадку услуг в более приоритетные квоты.
 
|-
 
|-
 
|}
 
|}
 
<br />
 
<br />
  
 
+
====Job_SetWrongProcessedServicesToQuota (Рассадка в квоты некорректных услуг, 11 версия)====
====Jobs_PriceRemover (Удаление рассчитанных цен, если не используется репликация)====
 
 
{| class="wikitable"
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Название задания (Job Name)'''
Строка 179: Строка 232:
 
| '''Описание'''
 
| '''Описание'''
 
|-
 
|-
| mwReplDisableDeletedPricesOnline
+
| SetWrongProcessedServicesToQuota
| mwReplDisableDeletedPrices
+
| SetWrongProcessedServicesToQuota
| 3 минуты<br />днем
+
| 10 минут
 
| Основная база
 
| Основная база
| Помечает записи в поисковых таблицах как неактивные.
+
| '''Обрабатывается с релиза 11.5'''. Производит поиск и повторную рассадку в квоты некорректно обработанных услуг.
|-
 
| mwRemoveDeletedNightly
 
| mwRemoveDeleted
 
| 1 сутки<br />(ночью)
 
| Основная база
 
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в поисковых таблицах.
 
 
|-
 
|-
 
|}
 
|}
Строка 201: Строка 248:
 
| '''Где устанавливается'''
 
| '''Где устанавливается'''
 
| '''Описание'''
 
| '''Описание'''
|-
 
| DC_CostOfferChangeState
 
| CostOfferChangeState
 
| 30 секунд
 
| Основная база
 
| Обрабатывает ценовые блоки из очереди в таблице [QueuesCostOffers].
 
 
|-
 
|-
 
| DC_ReCalculate_CreateNextSaleDate
 
| DC_ReCalculate_CreateNextSaleDate
Строка 262: Строка 303:
 
| Обновляет цены с наступившей датой продажи.
 
| Обновляет цены с наступившей датой продажи.
 
|-
 
|-
| mwCleanAndReindex
+
| DC_CostOfferChangeState
| mwCleaner<br />mwReindex
+
| CostOfferChangeState
| 1 сутки<br />(ночью)
+
| 30 секунд
 
| Основная база
 
| Основная база
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
+
| Активирует ценовые блоки.
|-
 
|}
 
<br />
 
 
 
====Jobs_MW (Репликация)====
 
{| class="wikitable"
 
| '''Название задания (Job Name)'''
 
| '''Запускаемая хранимая процедура'''
 
| '''Интервал запуска'''
 
| '''Где устанавливается'''
 
| '''Описание'''
 
|-
 
| mwReplDisableDeletedPricesOnline
 
| mwReplDisableDeletedPrices
 
| 3 минуты<br />днем
 
| Поисковая база
 
| Помечает записи в поисковых таблицах как неактивные.
 
|-
 
| mwRemoveDeletedNightly
 
| mwRemoveDeleted
 
| 1 сутки<br />(ночью)
 
| Основная база или поисковая при репликации
 
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в поисковых таблицах.
 
|-
 
| mwReplProcessQueueUpdate
 
| mwReplProcessQueueUpdate
 
| 30 секунд
 
| Поисковая база
 
| '''Обрабатывается с релиза 2009.2.20.12'''. Устанавливается при репликации. Обрабатывает изменения цен в поисковых таблицах.
 
|-
 
| mwReplQueueManagerDivide_xxx
 
| mwReplProcessQueueDivide
 
| 1 минута
 
| Поисковая база
 
| Устанавливается при репликации. Обрабатывает выставление, снятие и удаление туров из онлайна. Для ускорения выставления туров в интернет рекомендуем устанавливать не больше 5-ти таких заданий. Оптимально – 3.
 
|-
 
| mwSyncDictionaryData
 
| mwSyncDictionaryData 1
 
| 1 сутки<br />(ночью)
 
| Поисковая база
 
| Устанавливается при репликации. Обновляет справочные данные в поисковых таблицах.
 
 
|-
 
|-
 
| mwCleanAndReindex
 
| mwCleanAndReindex
 
| mwCleaner<br />mwReindex
 
| mwCleaner<br />mwReindex
 
| 1 сутки<br />(ночью)
 
| 1 сутки<br />(ночью)
| Основная база и поисковая
+
| Основная база
| Очищает рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
+
| Удаляет рассчитанные цены на прошедшие даты, перестраивает индексы в основных таблицах.
|-
 
| mwSyncDataWithMainDB
 
| mwSyncDataWithMainDB
 
| 10 минут
 
| Поисковая база
 
| '''Обрабатывается с релиза 2009.2.21.0'''. Переносит данные на поисковую базу данных по квотам, расписаниям и суточным ценам, которые стали актуальными.
 
 
|-
 
|-
 
|}
 
|}
Строка 325: Строка 319:
  
 
==Обработка заданий (Jobs)==
 
==Обработка заданий (Jobs)==
 +
===Job_mwSyncDictionaryData (Обновление справочных данных в поисковых таблицах)===
 +
Начиная с релиза '''9220SP32''' хранимая процедура mwSyncDictionaryData более ''не рекомендуется к использованию'' и удалена из состава БД ПК «Мастер-Тур».
 +
Следует ''отключить'' или ''удалить'' задание '''Job_mwSyncDictionaryData'''.
  
===Job_mwSyncDictionaryData (Обновление справочных данных в поисковых таблицах)===
+
===Job_mwSyncDictionarySpoData (Обновление справочных данных для поисковых фильтров)===
Для принудительного запуска механизма обновления справочных данных необходимо вручную вызвать хранимую процедуру mwSyncDictionaryData с нужными параметрами.
+
Для принудительного запуска механизма обновления справочных данных необходимо вручную вызвать хранимую процедуру mwSyncDictionarySpoData с нужными параметрами.  
Хранимая процедура mwSyncDictionaryData может принимать следующие параметры:
+
Хранимая процедура mwSyncDictionarySpoData может принимать следующие параметры:
* '''@update_search_table''' – обрабатываются следующие значения параметров:
 
** '''0''' – не обновлять данные в таблице mwPriceDataTable
 
** '''1''' – обновлять данные в таблице mwPriceDataTable
 
 
* '''@update_fields''' – обрабатываются следующие значения параметров:
 
* '''@update_fields''' – обрабатываются следующие значения параметров:
 
** '''COUNTRY''' (sd_cnname )
 
** '''COUNTRY''' (sd_cnname )
Строка 340: Строка 334:
 
** '''TOURTYPE''' (sd_tourtypename)
 
** '''TOURTYPE''' (sd_tourtypename)
 
** '''PANSION''' (sd_pncode, pt_pnname, pt_pncode)
 
** '''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)
 
** '''ROOM''' (pt_rmname, pt_rmcode, pt_rmorder)
** '''ROOMCATEGORY''' (pt_rcname, pt_rccode, pt_rcorder)
 
 
** '''ACCOMODATION''' (pt_acname, pt_accode, pt_acorder)
 
** '''ACCOMODATION''' (pt_acname, pt_accode, pt_acorder)
 
** '''TP_TOUR''' (sd_tourvalid, pt_tourcreated, pt_tourvalid, pt_rate)
 
** '''TP_TOUR''' (sd_tourvalid, pt_tourcreated, pt_tourvalid, pt_rate)
 +
* '''@enableLogging''' – обрабатываются следующие значения параметров:
 +
** '''1''' – включена запись в таблицу SystemLog сообщений о результатах выполнения каждого из шагов работы хранимой процедуры
 +
** '''0''' – отключена (значение по умолчанию)
 +
 
Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру.
 
Список параметров для обновления перечисляется через запятую. Названия параметров не чувствительны к регистру.
  
 
''Пример:''
 
''Пример:''
* Для синхронизации всех поисковых данных со справочниками ПК Мастер-Тур необходимо выполнить на базе данных запрос:
+
* Для синхронизации всех данных между справочниками и поисковыми таблицами необходимо выполнить на базе данных запрос:
 
<syntaxhighlight lang="sql">
 
<syntaxhighlight lang="sql">
exec mwSyncDictionaryData 1
+
EXEC mwSyncDictionaryPriceData 1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
* Для синхронизации, например, только названия страны и типа тура необходимо выполнить на базе данных запрос:
* Для синхронизации, например, только названия страны и типа тура со справочниками ПК Мастер-Тур необходимо выполнить на базе данных запрос:
 
 
<syntaxhighlight lang="sql">
 
<syntaxhighlight lang="sql">
exec mwSyncDictionaryData 1, 'country,tourtype'
+
EXEC mwSyncDictionaryPriceData 1, 'country,tourtype'
 
</syntaxhighlight>
 
</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 работает с поисковыми таблицами и может замедлить поиск в ПК «Мастер-Веб» и выставление туров в онлайн в ПК «Мастер-Тур», в том случае, если задание настраивается на рабочее время (днем).