Συμβάντα
scheduler.on(event, listener);scheduler.once(event, listener);scheduler.off(event, listener);Τα συμβάντα περιγράφουν τι συνέβη σε αυτό το instance. Οδηγός: Συμβάντα και καταγραφή.
| Συμβάν | Τύπος payload | Εκπέμπεται όταν |
|---|---|---|
start |
RunStartEvent |
Αυτό το instance κέρδισε μια εκτέλεση και πρόκειται να καλέσει τον handler |
success |
RunRecord |
Ο handler επέστρεψε |
failure |
RunFailureEvent |
Ο handler έριξε σφάλμα, ή πέρασε το timeoutMs |
interrupted |
RunInterruptedEvent |
Το stop() ή μια ανάληψη ακύρωσε το ctx.signal, και στη συνέχεια ο handler έριξε σφάλμα |
skip |
SkipEvent |
Μια εκτέλεση ήταν προγραμματισμένη και αυτό το instance δεν την εκτέλεσε |
lost |
LostEvent |
Ένα εφεδρικό instance ανέλαβε μια εκτέλεση που εκτελούσε αυτό το instance |
error |
SchedulerErrorEvent |
Πρόβλημα στο backend ή στη ρύθμιση παραμέτρων |
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
job |
string |
Όνομα εργασίας |
slot |
number |
Προγραμματισμένος χρόνος, ms από το 1970 |
scheduledAt |
Date |
Το slot ως Date |
instanceId |
string |
Αυτό το instance |
manual |
boolean |
Ξεκίνησε με runNow() |
attempt |
number |
1, ή περισσότερο μετά από ανάληψη |
reason |
RunReason |
'scheduled', 'manual', 'catch-up' ή 'takeover' |
success
Ενότητα με τίτλο «success»Ένα RunRecord με status: 'success'.
failure
Ενότητα με τίτλο «failure»Ένα RunRecord με status: 'failed', συν:
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
cause |
unknown |
Η τιμή που έριξε ο handler. Για timeout, ένα Error με όνομα TimeoutError |
Το error περιέχει το ίδιο πράγμα ως κείμενο.
interrupted
Ενότητα με τίτλο «interrupted»Ένα RunRecord με status: 'interrupted', συν:
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
cause |
unknown |
Η τιμή που έριξε ο handler |
handedOver |
boolean |
Backends μίσθωσης: η εκτέλεση παραδόθηκε σε άλλο instance για ολοκλήρωση |
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
job |
string |
Όνομα εργασίας |
slot |
number |
Η εκτέλεση που παραλείφθηκε |
scheduledAt |
Date |
Το slot ως Date |
instanceId |
string |
Αυτό το instance |
reason |
'taken' | 'late' | 'overlap' |
Αιτία |
lateMs |
number |
Με 'late': πόσο καθυστέρησε |
reason |
Σημασία |
|---|---|
'taken' |
Ένα άλλο instance κέρδισε αυτή την εκτέλεση |
'late' |
Αυτό το instance, ή η διεκδίκησή του, καθυστέρησε περισσότερο από το maxLateMs |
'overlap' |
Η προηγούμενη εκτέλεση αυτής της εργασίας βρίσκεται ακόμη σε εξέλιξη |
Οι έλεγχοι παρασκηνίου δεν εκπέμπουν skip: ο περιοδικός έλεγχος ενός εφεδρικού instance και η ανάκτηση κατά την εκκίνηση είναι σιωπηλοί.
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
job |
string |
Όνομα εργασίας |
slot |
number |
Η εκτέλεση |
scheduledAt |
Date |
Το slot ως Date |
attempt |
number |
Η προσπάθεια που εκτελούσε αυτό το instance |
instanceId |
string |
Αυτό το instance |
Το ctx.signal της εκτέλεσης ακυρώνεται την ίδια στιγμή.
| Πεδίο | Τύπος | Σημασία |
|---|---|---|
error |
unknown |
Τι πήγε στραβά |
job |
string |
Η εργασία, εάν το πρόβλημα ανήκει σε κάποια |
slot |
number |
Η εκτέλεση, εάν το πρόβλημα ανήκει σε κάποια |
Χωρίς listener για το error, αυτά καταγράφονται με το logger.error. Δεν εκσφενδονίζονται ποτέ στον κώδικά σας.
Ο τύπος
Ενότητα με τίτλο «Ο τύπος»interface SchedulerEvents { start: RunStartEvent; success: RunRecord; failure: RunFailureEvent; interrupted: RunInterruptedEvent; skip: SkipEvent; lost: LostEvent; error: SchedulerErrorEvent;}Σειρά συμβάντων για μία εκτέλεση
Ενότητα με τίτλο «Σειρά συμβάντων για μία εκτέλεση»Στο instance που την εκτελεί:
start -> success | failure | interruptedΤο lost μπορεί να συμβεί μεταξύ του start και του τέλους, ακολουθούμενο από το interrupted εάν ο handler ρίξει σφάλμα κατά την ακύρωση.
Στα instances που δεν την εκτελούν:
skip