Επαναπρογραμματισμός εργασιών cron σε nodejs κατά την επανεκκίνηση του διακομιστή

ψήφοι
31

Έχω εφαρμογή κόμβου js όπου ένας χρήστης μπορεί να προγραμματίσει 4-5 διαφορετικές εργασίες cron. Ένας χρήστης επιλέγει ένα start_date, end_date, start_time και end_time, και κατά συνέπεια, οι συναρτήσεις cron είναι προγραμματισμένες και ορισμένες καμπάνιες δημιουργούνται για να συνδεθούν με δυνητικούς πελάτες (ή άλλους χρήστες). Χρησιμοποιώ το πρόγραμμα κόμβου πακέτου npm για να επιτύχω την επιθυμητή εκτέλεση cron-job, αλλά το ζήτημα προκύπτει εάν η εφαρμογή ιστού μου διακόψει.

Σύμφωνα με την επίσημη τεκμηρίωση του node-schedule ,

Σημειώστε ότι το Πρόγραμμα κόμβων έχει σχεδιαστεί για προγραμματισμό κατά τη διάρκεια της διαδικασίας, δηλαδή οι προγραμματισμένες εργασίες θα ενεργοποιούνται μόνο για όσο εκτελείται το σενάριό σας και το πρόγραμμα θα εξαφανιστεί όταν ολοκληρωθεί η εκτέλεση.

Η λύση που μπορώ να βρω για να το επιλύσω είναι να καλέσω τις λειτουργίες cron χρησιμοποιώντας το αρχείο server.js που επανεκκινείται κάθε φορά που εκτελείται το σενάριο διακομιστή. Αλλά δεν μπορώ να επιλύσω μερικά από τα ακόλουθα ζητήματα:

  1. Ένας προγραμματιστής είναι μια μεμονωμένη συνάρτηση, όχι συγκεκριμένη καμπάνια, οπότε πώς θα γνωρίζει η εφαρμογή ποια λειτουργία cron θα ξεκινήσει εάν δεν έχει ολοκληρωθεί;
  2. Ένας προγραμματιστής είναι μια μεμονωμένη λειτουργία, η οποία θα καλείται κάθε φορά μετά την επανεκκίνηση του διακομιστή. Εάν δημιουργηθούν 6 παρουσίες διακομιστή, θα κληθούν 6 φορές.

Ας υποθέσουμε ότι ο προγραμματιστής μου πρόκειται να εκτελεστεί μεταξύ 28 Μαΐου 11:00 π.μ. έως 31 Μαΐου 12:00 π.μ. Ο προγραμματιστής ξεκινά την εργασία του και μερικές από τις καμπάνιες εκτελούνται στο μεταξύ. Εάν ο διακομιστής μου τερματιστεί στις 30 Μαΐου, πώς μπορώ να παραλάβω από την υπόλοιπη ώρα ημερομηνίας και τις καμπάνιες και να τον ολοκληρώσω από εκεί;

Ανησυχώ λοιπόν για τον τρόπο προγραμματισμού ή χειρισμού των λειτουργιών cron job για τις καμπάνιες; Εάν κάποια από τις εργασίες cron της καμπάνιας διακοπεί ενδιάμεσα εάν ο διακομιστής σταματήσει, πώς πρέπει να μπορώ να επαναπρογραμματίσω ή να εκτελέσω αυτήν τη λειτουργία cron από την ώρα ή την ημερομηνία που έχει απομείνει;

Δεν είμαι πολύ έμπειρος με τις δουλειές cron, ελπίζοντας για μερικές εύχρηστες λύσεις.

Δημοσιεύθηκε 28/05/2020 στις 19:49
πηγή χρήστη
Σε άλλες γλώσσες...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more