Överlappande körning av schemalagda arbetsflöden preventing-overlapping-execution-of-scheduled-workflows

Körning av schemalagda arbetsflöden

I Campaign Standard garanterar arbetsflödesmotorn att en arbetsflödesinstans endast körs av en process. Genom att blockera aktiviteter som import, långvariga frågor eller skrivningar i databasen kan du förhindra att andra åtgärder utförs när du kör dem.

Icke-blockerande aktiviteter blockerar däremot inte körningen av andra aktiviteter (vanligtvis aktiviteter som väntar på en händelse som Scheduler-aktiviteten).

Detta kan leda till ett scenario där ett schemabaserat arbetsflöde kan börja köras även när den tidigare körningen av samma arbetsflöde ännu inte har slutförts, vilket kan leda till oväntade dataproblem.

När du utformar ett schemalagt arbetsflöde som innehåller flera aktiviteter måste du därför se till att arbetsflödet inte schemaläggs om förrän det är klart. För att göra detta måste du konfigurera arbetsflödet för att förhindra att det körs om en eller flera uppgifter från en tidigare körning fortfarande väntar.

Konfigurera arbetsflödet

Om du vill kontrollera om en eller flera uppgifter från en tidigare arbetsflödeskörning fortfarande väntar, måste du använda en Query- och en Test-aktivitet.

  1. Lägg till en Query-aktivitet efter Scheduler-aktiviteten och konfigurera den enligt följande.

  2. Ändra aktivitetens resurs till WorkflowTaskDetail, vilket innebär att den har arbetsflödets aktuella uppgifter som mål.

  3. Konfigurera frågan med reglerna nedan:

    • Den första regeln filtrerar bort den aktuella aktiviteten (fråga2) samt nästa schemauppgift (schema2) som hör till det aktuella arbetsflödet.

      note note
      NOTE
      När en Scheduler-aktivitet startas läggs en annan schemauppgift till omedelbart som ska köras vid nästa schemalagda tidpunkt och arbetsflödet startas. Därför är det viktigt att filtrera både frågan och schemalägga aktiviteter när du söker efter väntande aktiviteter från en tidigare körning.
    • Den andra regeln avgör om några uppgifter från en tidigare körning av arbetsflödet fortfarande är aktiva (väntande), vilket motsvarar körningsstatusen 0.

  4. Lägg till en Test-aktivitet för att kontrollera antalet väntande aktiviteter som returneras av Query-aktiviteten. Det gör du genom att konfigurera två utgående övergångar.

    • Den första övergången fortsätter att köra arbetsflödet om det inte finns några väntande uppgifter,
    • Den andra övergången avbryter arbetsflödets körning om det finns några väntande uppgifter.

Nu kan du konfigurera resten av arbetsflödet efter behov. Om arbetsflödets körning avbryts på grund av väntande uppgifter kan arbetsflödet gå igenom dessa steg när det körs igen enligt schemat. Detta garanterar att arbetsflödets körning bara fortsätter om det inte finns några aktiva (väntande) uppgifter från en tidigare körning.

recommendation-more-help
3ef63344-7f3d-48f9-85ed-02bf569c4fff