/ / Sitecore планиране на задачи с изключение от времеви период - sitecore, планирани задачи, sitecore8.1

Sitecore Задаване на задачата с изключение на времевия период - sitecore, насрочени задачи, sitecore8.1

Имам редица планирани задачи, зададени в Sitecore. Някои работят на всеки 15 минути, други на всеки няколко часа.

Пример конфигурация:

  <sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
</agent>
</scheduling>
</sitecore>

Това изпълнява задача, която изгражда xml файл на всеки 15минути и работи добре. Но сега искам да спра да се изпълнява тази задача между определени времена в определени дни. Има ли някакъв начин да добавя това чрез config?

Отговори:

4 за отговор № 1

Не. Няма начин да направите това само чрез конфигурация.

Това, което можете да направите, е да прехвърлите допълнителни параметри към планираната задача и да зададете начален и краен час. И след това в планирания код на задачата си просто проверете дали текущото време е между началното и крайното време.

Работата ще бъде изпълнена, но няма да генерира нов xml.

<sitecore>
<scheduling>
<agent type="Acme.Tasks.SitemapProducts, AcmeSitecore" method="Run" interval="00:15:00" site="website">
<param desc="filename">~/products.xml</param>
<param desc="Site">website</param>
<param desc="HasVariants">false</param>
<StartTime>08:00</StartTime>
<Endtime>21:00</Endtime>
</agent>
</scheduling>
</sitecore>

Кодът трябва да е нещо подобно (не е тествано):

public class SitemapProducts
{
public string StartTime { get; set; }
public string EndTime { get; set; }

public void Run()
{
if (!string.IsNullOrEmpty(StartTime) && DateTime.Now.ToString("HH:mm") < StartTime)
{
return;
}
if (!string.IsNullOrEmpty(EndTime) && DateTime.Now.ToString("HH:mm") > EndTime)
{
return;
}
}