Перепланировано удаление большего количества контактов в следующий непиковый период - PullRequest
0 голосов
/ 12 декабря 2018

В Kentico (9), когда я запускаю задачу «Удалить неактивные контакты», она фактически никогда не запускается, и в результате всегда получается «Перенесено для удаления большего количества контактов в следующий непиковый период»

Я пыталсяменяя настройки на запуск раз в неделю, я попытался создать собственный IDeleteContacts, а затем настроить его на использование этого пользовательского класса, но я всегда получаю один и тот же результат.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Запланированная задача «Удалить неактивные контакты» выполняется только с 2:00 до 6:00 в зависимости от времени работы сервера на сайте.Вы можете увидеть это в документации .Он только удаляет партию из 1000 контактов и никогда больше.Если вы хотите «обмануть» сайт для выполнения запланированного задания, обновите время на сервере до 1:58 и перезапустите сайт.

0 голосов
/ 14 декабря 2018

По умолчанию Kentico выполняет свои запланированные задачи в хвосте обычных веб-запросов.Это нормально, если у вас есть трафик 24/7.Если вы этого не сделаете, то вы можете столкнуться со всеми видами неприятностей, включая проблему, которую вы сейчас описываете, потому что запланированные задачи не выполняются.

Если вы работаете на сервере Windows, вы можете настроить служба для запуска запланированных задач .Если это не вариант, вы можете настроить мониторинг так, чтобы он заходил на ваш сайт каждые пару минут, например UptimeRobot или Application Insights .Вы получите дополнительный бонус за уведомление, когда сайт закрывается.

Если вам действительно нужно очистить контакты EMS, потому что это выходит из-под контроля, вы можете получить доступ к базе данных напрямую и активировать тот же самый сохраненныйпроцедура, которую использует запланированная задача.Он называется [Proc_OM_Contact_MassDelete] и принимает предложение where и размер пакета.В предложении where указывается политика удаления.Например,

ContactCreated < GETDATE()-60 AND ([ContactEmail] IS NULL PR [ContactEmail]='')

В этом предложении where хранимая процедура будет обрабатывать контакты, созданные более 60 дней назад и не имеющие адреса электронной почты.

Обратите внимание, чтобольшие объемы данных EMS потребуют настройки индекса базы данных для выполнения этой процедуры в течение приемлемого периода времени.Это верно для EMS в целом, когда ваш сайт имеет приличный объем трафика.

Если стандартная очистка Kentico не работает, например, потому что база данных не может обрабатывать миллионы контактов, мынаписал скрипт для очистки всех данных EMS .Используйте с осторожностью;)

0 голосов
/ 12 декабря 2018

применили ли вы последнее исправление (9.0.50) к своему проекту?Произошла ошибка, когда удаление неактивных контактов заняло более 1 минуты, следующий запуск запланированной задачи «Удалить неактивные контакты» не был установлен, и задача больше не выполнялась.Вы можете скачать пакет прямо с этой страницы: https://devnet.kentico.com/download/hotfixes

...