Trigger ermöglichen Ihnen die vorab geplante Ausführung von Aufträgen in regelmäßigen Abständen (Zeit-Trigger) oder immer dann, wenn Ihren Warteschlangen neue Elemente hinzugefügt werden (Warteschlangen-Trigger). Auf der Seite Trigger können Sie neue Trigger erstellen, vorhandene verwalten und sofort einen Auftrag für alle vorhandenen Trigger starten.
Wichtig!
Trigger time zones
The time zone set on a trigger is not restricted by the time zone of the tenant. However, if you use non-working days calendars, you cannot set different time zones.
Time triggers are launched according to the time zone defined on the trigger level. Queue triggers are launched based on queue items processing.
Both time and queue triggers are disabled based on the trigger time zone.Trigger disabling
Standardmäßig wird ein Trigger nach 10 fehlgeschlagenen Starts automatisch deaktiviert, wenn er am letzten Tag nicht erfolgreich gestartet wurde. Dieser Wert kann mit dem ParameterTriggers.DisableWhenFailedCount
angepasst werden.
Learn more about jobs and job execution.
Zeit-Trigger
Enable you to schedule a recurrent time to start a job.
Once you add a time trigger for a process, you can expect the following:
- The trigger creates a job at the scheduled time, with the allocation, account, and machine options of your choosing. This does not equate to the actual execution of the job.
- The job created at step 1 is executed once a robot becomes available. By default, if the trigger already has a pending job, then no new jobs are created until the first one is executed. The number of pending jobs that the trigger can create is controlled by the Triggers.JobsCountStrategy parameter.
Input values for processes that support input and output parameters can be managed at this level as well.
Ausführungsziel
Sie können mehrere Regeln konfigurieren, je nachdem, welche Prozesse ausgeführt werden.
Description | |
---|---|
Dynamic Allocation | Allocate Dynamically Define how many times a process is to be executed according to the given trigger. This option enables you to utilize your resources to their greatest extent. As soon as a Robot becomes Available, it executes the indicated process according to the provided trigger. |
Account The process is executed under a specific account. Only specifying the account results in Orchestrator allocating the machine dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair. | |
Machine The process is executed on one of the host machines attached to the selected machine template. Only specifying the machine results in Orchestrator allocating the account dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair. Make sure that runtimes matching the job type are allocated to the associated machine template. Only connected host machines associated with the active folder are displayed. | |
Select valid account-machine Mappings | The process can be executed on multiple specific account-machine pairs. Learn more about account-machine mappings. |
Wichtig!
Wenn die Verbindung zur SQL-Datenbank unterbrochen werden sollte, werden die Trigger, die zu diesem Zeitpunkt ausgelöst werden sollten, falsch ausgelöst, und es wird eine Warnung der Stufe Error generiert.
Szenarien mit Warteschlangenjobs
- Wenn Sie mehrere Trigger für den gleichen Roboter festlegen und sich ihre Ausführungszeit mindestens einmal überschneidet, werden die Aufträge in einem ausstehenden Status in die Warteschlange eingereiht. Der Roboter führt die in die Warteschlange gesetzten Aufträge in chronologischer Reihenfolge aus.
- Wenn der gleiche Prozess auf dem gleichen Roboter mehrmals geplant ist und sich die Ausführungszeiten überschneiden, wird nur ein einziger Prozess in einem ausstehenden Status in die Warteschlange gesetzt. Wenn z. B. Prozess A auf Roboter X um 11:20, 11:21 und 11:25 ausgeführt werden soll, ist das Verhalten wie folgt:
- um 11:20 wird der erste Prozess ausgeführt.
- Wenn die erste Ausführung vor dem zweiten Trigger abgeschlossen wird, geschieht Folgendes:
- Der zweite Trigger wird verarbeitet.
- Wenn diese Ausführung vor dem 11:25-Trigger abgeschlossen wird, wird auch letztere ausgeführt.
- Wenn die Ausführung des 11:21-Triggers nicht vor dem 11:25-Trigger abgeschlossen wird, wird der letztere in einem ausstehenden Status zu einer Warteschlange hinzugefügt.
- Der zweite Trigger wird verarbeitet.
- Wenn die erste Ausführung NICHT vor dem zweiten Trigger abgeschlossen wird:
- Der 11:21-Trigger wird in einem ausstehenden Status in eine Warteschlange gesetzt.
- Wenn die Ausführung des 11:21-Triggers vor dem 11:25-Trigger abgeschlossen wird, wird auch der letztere ausgeführt.
- Wenn die Ausführung des 11:21-Triggers startet, aber nicht vor dem 11:25-Trigger abgeschossen wird, wird der letzte Trigger in einem ausstehenden Status in eine Warteschlange gesetzt.
- Wenn der 11:21-Trigger noch aussteht, während der 11:25-Trigger gestartet werden sollte, wird der letztere nicht mehr ausgeführt oder einer Warteschlange hinzugefügt, und die folgende Meldung wird angezeigt: Die Roboter haben bereits anstehende Aufträge für diesen Prozess.
- Der 11:21-Trigger wird in einem ausstehenden Status in eine Warteschlange gesetzt.
- Wenn Sie einen Prozess mehrmals auf verfügbaren Robotern ausführen möchten, haben Sie die Möglichkeit, genau dies zu tun, indem Sie die Option Dynamisch zuweisen auf der Registerkarte Ausführungsziel verwenden. Die Aufträge werden in der entsprechenden Umgebung im ausstehenden Status in die Warteschlange eingereiht, und jedes Mal, wenn ein Roboter verfügbar wird, wird der nächste Auftrag in der Reihe ausgeführt. Dadurch ist niemals ein Roboter verfügbar, solange Aufträge ausstehen.
Nehmen wir an, Sie möchten einen Prozess sieben Mal ausführen. In gleichen Moment, in dem Ihr Trigger ausgelöst wird, werden sieben anstehende Jobs zur Workload der Umgebung hinzugefügt, ohne dass sie bestimmten Robotern zugeordnet werden. Verschiedene Szenarien sind möglich:- Zum Zeitpunkt des Auslösens sind mindestens 7 Roboter verfügbar - einem Roboter wird ein Job zugeordnet, sodass alle Jobs in einem Durchgang ausgeführt werden.
- Zum Zeitpunkt des Auslösens sind weniger als 7 Roboter verfügbar, sagen wir 4. Jedem dieser 4 Roboter wird ein Job zugeordnet. Wird ein neuer Roboter verfügbar, übernimmt dieser einen weiteren Job der verbleibenden drei. Dies geschieht für jeden verfügbaren Roboter, bis keine Jobs mehr übrig sind.
- Wenn zwei oder mehr Trigger denselben Prozess mit einer unterschiedlichen Anzahl von Wiederholungen ausführen, wird beim nächsten Trigger die maximale Anzahl von Aufträgen zwischen ihnen zur Umgebungs-Workload hinzugefügt. sie kumulieren nicht. Stellen Sie sich die folgende Situation vor: Trigger A führt einen Prozess 13 Mal aus und Trigger B führt ihn 20 Mal aus. Es können folgende Szenarien auftreten:
- A und B werden geichzeitig ausgelöst - 20 Jobs (das Maximum zwischen 13 und 20) werden in der Umgebungs-Workload in die Warteschlange gestellt.
- B wird zuerst ausgelöst - 20 Jobs werden in die Warteschlange gestellt.
- Wurden zwischen der Auslösezeit B und der Auslösezeit A 7 oder mehr Jobs ausgeführt, etwa 9 (11 verbleibende anstehende Jobs, dann werden 13 Jobs (die maximale Anzahl zwischen 11 und 13) in der Umgebungs-Workload in die Warteschlange gestellt.
- Wurden zwischen der Auslösezeit B und der Auslösezeit A weniger als 7 Jobs ausgeführt, etwa 5 (15 verbleibende anstehende Jobs, dann werden keine weiteren Jobs in die Warteschlange gestellt, da bereits mehr als 13 Jobs anstehen. Überdies wird folgende Meldung angezeigt. Die Roboter haben bereits anstehende Jobs für diesen Prozess.
- A wird zuerst ausgelöst - 13 Jobs werden in die Warteschlange gestellt.
- Immer, wenn B während der Ausführung von A ausgelöst wird, werden der Umgebung je nachdem, wie viele Jobs von A in Bearbeitung sind oder ausgeführt wurden, bis zu 20 Jobs hinzugefügt. Sagen wir, 6 Jobs wurden ausgeführt. Wird B ausgelöst, werden 14 Jobs hinzugefügt, sodass das Maximum von 20 erreicht ist.
- Wenn ein Trigger den gleichen Prozess mehrmals ausführt, werden die entsprechenden Aufträge in der Warteschlange auf die Anzahl der Ausführungen beschränkt, die Sie beim Definieren des Triggers auf der Registerkarte Ausführungsziel angegeben haben. Sie kumulieren nicht mit jedem Start des Triggers.
Angenommen Sie möchten alle 30 Minuten den gleichen Prozess 10 Mal ausführen. Beim ersten Start Ihres Triggers werden 10 Aufträge in die Warteschlange eingereiht. Wenn zwischen den Auslösungen weniger als 10 Aufträge ausgeführt werden (z. B. 4), werden zum Zeitpunkt der nächsten Auslösung nur 6 neue Aufträge in die Warteschlange eingereiht, da die Anzahl der ausstehenden Aufträge für diesen Prozess maximal 10 betragen kann.
Queue Triggers
Kann sofort einen Prozess bei der Trigger-Erstellung oder immer dann starten, wenn Sie ein neues Element zu einer Warteschlange hinzufügen. Der Trigger wird in der Umgebung ausgeführt, die dem ausgewählten Prozess zugeordnet ist.
Wichtig
Die Implementierung von Warteschlangen-Triggern ist für die Verarbeitung von Prozessen optimiert, die eine interne Schleife haben, um alle verfügbaren Warteschlangenelemente zu verarbeiten, bevor sie beendet werden. Wenn ein Prozess diese Strategie nicht umsetzt, ist das Ergebnis suboptimal und erfüllt möglicherweise nicht die gewünschten geschäftlichen Anforderungen.
There are three options that help you configure the rules for process triggering:
Field | Description |
---|---|
Minimum number of items to trigger the first job | The item-processing job is only started after the targeted queue has at least this number of new items. Deferred queue items are not counted. |
Maximum number of pending and running jobs allowed simultaneously | The maximum number of allowed pending and running jobs, counted together. For 2 or more jobs allowed simultaneously, the third option needs to be defined as described below. |
Another job is triggered for each __ new item(s). | A new job is triggered for each number of new items added on top of the number of items defined for the first option. Only enabled if there are 2 or more jobs allowed simultaneously (defined using the option described above). |
Orchestrator takes into account both New and In Progress queue items when computing the number of target jobs that must be reached for optimal resource allocation.
Beispiel
- Say you add 3 queue items to the queue. Orchestrator computes the number of target jobs based on the number of new and in-progress items => 3 target jobs are needed. Orchestrator launches 3 jobs to process the 3 queue items. The 3 items move to In Progress.
- Fügen Sie der Warteschlange zwei weitere neue Elemente hinzu. Der Orchestrator berechnet die Anzahl der Aufträge basierend auf der Anzahl der neuen und in Bearbeitung befindlichen Elemente => 5 (3+2) Zielaufträge sind erforderlich. Der Orchestrator startet 2 neue Aufträge, um das Ziel von 5 zu erreichen.
To handle queue items that cannot be processed at the moment they are enqueued, including retried items, once every 30 minutes, a check for unprocessed items is performed by default, and if the triggering condition is met, the trigger is launched once again. Note that you can use the Queue.ProcessActivationSchedule
parameter to adjust the default 30-minute check interval. This check ensures all items in the queue are processed in the following situations:
- Warteschlangenelemente werden der Warteschlange viel schneller hinzugefügt, als sie mit den verfügbaren Ressourcen verarbeitet werden können.
- Warteschlangenelemente werden während arbeitsfreien Tagen einer Warteschlange hinzugefügt, können jedoch nur während der Arbeitszeit verarbeitet werden.
- Die Verarbeitung von Warteschlangenelementen wird auf einen späteren Zeitpunkt verschoben. Nach Ablauf dieser Zeit können sie verarbeitet werden, sobald sie durch die 30-minütige Überprüfung identifiziert wurden.
Hinweis:
Aufgrund der standardmäßigen 30-Minuten-Prüfung besteht die Gefahr von Ressourcenhindernissen außerhalb der Hauptgeschäftszeiten. Um dies zu vermeiden, stellen Sie sicher, dass am Ende des Arbeitstages keine unverarbeiteten Artikel vorhanden sind. Wenn dies nicht möglich ist, stellen Sie sicher, dass der getriggerte Prozess kein menschliches Eingreifen erfordert.
Beispiel
Ich habe zwei Aufträge:
- Einer, der 3 Elemente pro Sekunde für 20 Sekunden zur Zielwarteschlange hinzufügt (insgesamt 60 Elemente).
- Einer, der 1 Element pro Sekunde von der Zielwarteschlange verarbeitet.
Ich habe meinen Trigger wie folgt definiert:
- Mindestanzahl von Elementen zum Auslösen des ersten Auftrags:
31
. - Maximale Anzahl ausstehender und ausgeführter Aufträge, die gleichzeitig zulässig sind:
3
. - Für alle
10
neuen Elemente wird ein weiterer Auftrag ausgelöst.
Ich starte den Auftrag, der Elemente zu meiner Warteschlange hinzufügt.
- Nach 11 Sekunden (33 Elemente) wird der erste Elementverarbeitungsauftrag ausgelöst.
- Nach weiteren 4 Sekunden (12 Elementen) wird der zweite Elementverarbeitungsauftrag ausgelöst.
- Nach weiteren 4 Sekunden (12 Elementen) wird der dritte Elementverarbeitungsauftrag ausgelöst.
Als das Hinzufügen der Warteschlangenelemente beendet war, hatte der erste Auftrag 9 Elemente verarbeitet, der zweite 5 Elemente, der dritte 1 Element. Das sind 15 Elemente, die in 20 Sekunden von drei Aufträgen verarbeitet wurden.
Das ergibt einen Rest von 45 zu verarbeitenden Elementen (60-15). Mit 3 Aufträgen, die jeweils 1 Element pro Sekunde verarbeiten, bedeutet dies 15 Sekunden für den Rest, der verarbeitet werden soll.
Insgesamt 35 Sekunden.
Ausführungsziel
Sie können mehrere Regeln konfigurieren, je nachdem, welche Prozesse ausgeführt werden.
Description | |
---|---|
Account | The process is executed under a specific account. Only specifying the account results in Orchestrator allocating the machine dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair. |
Machine | The process is executed on one of the host machines attached to the selected machine template. Only specifying the machine results in Orchestrator allocating the account dynamically. Specifying both the account and the machine means the job launches on that very account-machine pair. Make sure that runtimes matching the job type are allocated to the associated machine template. Only connected host machines associated with the active folder are displayed. |
Job Count Strategien
The Triggers.JobsCountStrategy
parameter enables you to choose the strategy for launching jobs through triggers. The following options are available:
-
PerProcess
‑ Ein Trigger startet die erforderliche Anzahl von Aufträgen unter Berücksichtigung jeglicher ausstehender Aufträge für den angegebenen Prozess. Beispielsweise starten zwei Trigger, die für denselben Prozess definiert sind, 3 bzw. 5 Aufträge. Falls der erste Trigger 3 Aufträge zu einem bestimmten Zeitpunkt startet, wenn der zweite Trigger ausgelöst wird, werden 2 Aufträge gestartet, um die 5 erforderlichen Aufträge zu erreichen. -
PerTrigger
‑ Ein Trigger startet die erforderliche Anzahl von Aufträgen unter Berücksichtigung vorhandener Aufträge, die zuvor von demselben Trigger gestartet wurden. Beispielsweise wird ein Trigger definiert, um 9 Aufträge zu einem bestimmten Zeitpunkt zu starten. Wenn 2 Aufträge bis zum erneuten Auslösen dieses Triggers erfolgreich abgeschlossen wurden, startet der Orchestrator weitere 2 Aufträge, um die erforderlichen 9 Aufträge zu erreichen. -
NoLimit
‑ Der Trigger startet die erforderliche Anzahl von Aufträgen unabhängig von vorhandenen, ausstehenden Aufträgen. Beispielsweise wird ein Trigger definiert, um 5 Aufträge zu einem bestimmten Zeitpunkt zu starten. Beim zweiten Auslösen des Triggers werden weitere 5 Aufträge gestartet.
Non-Working Days
Dadurch können Sie mehrere Listen von arbeitsfreien Tagen pro Mandant mit jeweils eigenem Datumssatz definieren, für den Sie Ihre Trigger bei Bedarf so konfigurieren können, dass sie nicht ausgeführt werden. Das bedeutet, dass Ihre langfristigen Trigger für Feiertage, Wochenenden oder andere Tage ohne normale Geschäftsaktivitäten so konfiguriert werden können, dass sie nicht gestartet werden. Sie können solche Kalender auf der Registerkarte Arbeitsfreie Tage auf der Seite Einstellungen definieren oder hochladen. Standardmäßig wird ein BankHoliday-Kalender erstellt, damit Sie Ihre ersten arbeitsfreien Tage einfacher definieren können. Sobald die im ausgewählten Kalender definierten arbeitsfreien Tage vorbei sind, wird der Trigger wie gewohnt ausgelöst.
Um eine dieser Einschränkungen auf Ihre Trigger anzuwenden, müssen Sie den gewünschten Kalender aus dem Dropdown-Menü Einschränkungen für Nicht-Arbeitstage auswählen, wenn Sie einen neuen Trigger erstellen oder einen vorhandenen bearbeiten. Sie können nur einen einzigen Kalender für einen Trigger auswählen. Beachten Sie, dass sich das Bearbeiten eines Kalenders auf der Registerkarte Arbeitsfreie Tage auch auf Trigger auswirkt, bei denen dieser Kalender bereits im Dropdown-Menü Einschränkungen für Nicht-Arbeitstage ausgewählt ist.
Hinweis
When you use non-working days, the trigger time zone must be the same as the tenant time zone (Tenant > Settings > General), because calendar restrictions cannot be applied in different time zones. A tenant without an explicitly defined time zone inherits it from the host.
For more details on how to manage non-working days, click here.
Note that adding and removing non-working days is audited at the tenant level. More details about audit here.
Vor etwa einem Monat aktualisiert