Βασική παραμετροποίηση και λειτουργία του module Scheduler

Σκοπός: Ορισμός Χρονοπρογραμματισμένων ενεργειών στο Pegasus Web App

Εργαλεία
Pegasus Web App
Module Προγραμματισμένες Εργασίες  PE.00.088 (προστίθεται)

Λειτουργία
To module [Προγραμματισμένες Εργασίες] μας δίνει τη δυνατότητα να χρονοπρογραμματίσουμε την εκτέλεση διαφόρων ενεργειών από το πρόγραμμα ώστε οι ενέργειες αυτές να εκτελούνται: 

  • Επαναλαμβανόμενα (π.χ. κάθε 15 Λεπτά)
  • Συγκεκριμένες μέρες της εβδομάδας (π.χ. όλες τις ημέρες τις εβδομάδος)
  • Για ορισμένη Χρονική Περίοδο (π.χ. από 04/10)
  • με έναρξη συγκεκριμένη ώρα της ημέρας (π.χ. 10:00)
  • με ορισμένη διάρκεια (π.χ. για δώδεκα ώρες)

Οι ενέργειες που εκτελούνται αφορούν μεταξύ άλλων στην:

  • Εκτέλεση αυτοματισμών της Εφαρμογής π.χ. Εξαγωγή XML για Skroutz
  • Αποστολή email στους πελάτες του site μας όταν η παραγγελία τους πάρει μία συγκεκριμένη κατάσταση.
  • Αποστολή e-mail Τιμολογίου
  • Αποστολή e-mail Στην Υπέρβαση Παλαιότητας Υπολοίπου

Επιπρόσθετα, οι διαθέσιμες ενέργειες διαμορφώνονται και με βάση τα επιπλέον modules που διαθέτει η εγκατάσταση ή από τον τύπο της.

Για παράδειγμα, αν υπάρχει το module [Δωροεπιταγές] προστίθεται και η ενέργεια [Αποστολή e-mail στις Δωροεπιταγές], έτσι ώστε η εφαρμογή να στέλνει αυτόματα e-mail μετά την έκδοση μιας δωροεπιταγής.

Τέλος, αν οι [Προγραμματισμένες Εργασίες] προστεθούν σε μια εγκατάσταση Pegasus Web App e-Hotel, τότε διατίθεται και η ενέργεια [Αποστολή e-mail κατά το check-in/check-out]. Δείτε εδώ το λινκ του σχετικού κειμένου.

Περισσότερες λεπτομέρειες για τον τρόπο λειτουργίας του module, στο κείμενο Χρονοπρογραμματισμός Ενεργειών/Εργασιών στο Pegasus Web App - Πως λειτουργεί;


Ορισμοί
Χρονοπρογραμματισμός :
[Toolbox->Προγραμματισμένες Εργασίες->Εργασίες]->Χρονοπρογραμματισμός.
Κάνουμε μία νέα Καταχώρηση

Στο tab [Χρονοπρογραμματισμός], δημιουργείτε μια νέα εγγραφή, ορίζοντας στοιχεία:

  • Εναρξη/Λήξη: τη διάρκεια που θα εκτελείται η συγκεκριμένη εργασία
  • Δευτερα-Κυριακή: συγκεκριμένες ημέρες που θέλετε να εκτελείται (πχ μπορεί να θελετε μόνο καθημερινές)
  • Ώρα εκτέλεσης ανά ημέρα: τι ώρα θέλετε να ξεκινάει η εκτέλεση της εργασίας κατά τις επιλεγμένες μέρες
  • Εκτελείται κάθε λεπτά: ανά πόσα λεπτά θα επαναλαμβάνεται η εκτέλεση της εργασίας
  • Για διάρκεια σε ώρες: για πόσες ώρες θα επαναλαμβάνεται η εκτέλεση της εργασίας (πχ μπορεί να θέλετε να επαλαμβάνεται για το εργάσιμο 8ωρο)

ΣΗΜΑΝΤΙΚΟυπάρχει περίπτωση ανάλογα με το PHP timeout του χώρου σας, η εκτέλεση μιας εργασίας να μην προλαβαίνει να ολοκληρωθεί(στο [ιστορικό εκτέλεσης] θα έχει κατάσταση [Εκτελείται]) και ως αποτέλεσμα, ενδέχεται να μην εκτελεστούν τα επόμενα instances.

Αν δεν μπορείτε να αλλάξετε το PHP timeout, μπορείτε να χρησιμοποιήσετε το πεδίο:

  • Ακύρωση εργασίας που εκτελείται μετά από(min): Αν μία εργασία παραμείνει σε κατάσταση "Εκτελείται" παραπάνω από το χρονικό όριο που ορίζετε εδώ τότε θα ακυρωθεί αυτόματα. Αν έχουν οριστεί 0 λεπτά, τότε η εργασία δεν ακυρώνεται ποτέ.

Για παράδειγμα, αν το PHP timeout είναι 2 λεπτά και η εργασία που θα εκτελεστεί ενδέχεται να διαρκέσει 5 λεπτά, μπορείτε να ορίσετε σε αυτό το πεδίο την τιμή 4. Ως εκ τούτου, εφόσον περάσουν 2 λεπτά (από το timeout) και 4 λεπτά σε αυτό το πεδίο, μετά από 6 λεπτά η εργασία θα ακυρωθεί (και θα επιτραπεί να προχωρήσει στην επόμενη χρονικά).

Ενέργεια που εκτελείται :
[Toolbox->Προγραμματισμένες Εργασίες->Εργασίες->Ενέργειες].
Κάνουμε μία νέα Καταχώρηση.Επιλέγουμε το είδος της ενέργειας που θα εκτελεστεί.Η ενέργειά μας μπορεί να είναι η εκτέλεση ενός αυτοματισμού ή η αποστολή email.

Ενδεικτικά :

Α.Εκτέλεση Αυτοματισμού

Β.Αποστολή Email με την αλλαγή κατάστασης μίας παραγγελίας
Στο παράδειγμά μας , στέλνεται email από την εφαρμογή για όλες τις παραγγελίες των οποίον η κατάσταση άλλαξε σε "Τιμολογήθηκε"

 


Εκτέλεση Ενεργειών
Α.Εκτέλεση από το Pegasus Web App[Toolbox->Προγραμματισμένες Εργασίες->Εκτέλεση Εργασιών]
Από εδώ, θέτουμε σε λειτουργία τον χρονοπρογραμματιστή μας.Μας δίνεται η δυνατότητα να κάνουμε παύση της εκτέλεσής του (button PAUSE) και έπειτα να την επανεκκινήσουμε(button RESUME). Όσο η οθόνη αυτή είναι ανοιχτή, ο χρονοπρογραμματιστής εκτελεί τις εργασίες όπως τις έχουμε ορίσει.

Β.Εκτέλεση από το Scheduler των Windows με τη χρήση REST Services

Εναλλακτικά, μπορούμε να εκτελέσουμε τις χρονοπρογραμματισμένες εργασίες χωρίς να χρειάζεται να γίνει login στην εφαρμογή, ή να παραμένει αυτή ανοιχτή καθόλη τη διάρκεια εκτέλεσης των εργασιών μέσα στην ημέρα. Αυτό επιτυγχάνεται με το module Web App REST Service(PE.00.087). Ο τεχνικός της εγκατάστασης θα πρέπει να κάνει τα εξής:

1.Είναι απαραίτητη η ύπαρξη της βιβλιοθήκης curl. Για εγκατάσταση της βιβλιοθήκης curl , θα πρέπει να κατεβάσετε το zip από εδώ: https://curl.se/windows/ . Θα πρέπει να γίνει unzip ώστε τα αρχεία της βιβλιοθήκης να είναι μέσα στον φάκελο C:\curl

2.Από την επιλογή [Toolbox->Εργαλεία Παραμετροποίησης->Παραμετροποίηση Rest Service->App IDs] δημιουργούμε ένα νέο APP ID τσεκάρουμε το "Ναι" στην στήλη "Προβολή" στη γραμμή "Εκτέλεση Χρονοπρογραμματισμένων Εργασιών"

3.Δημιουργούμε ένα αρχείο .bat με τις εντολές:

@echo off
C:\curl\bin\curl.exe https://[mydomain]/api/scheduler/exec?appid=[myappid] 

αντικαθιστώντας το [mydomain] με το site μας και το [myappid] με το App ID που φτιάξαμε στο βήμα 1. 

4.Ορίζουμε την εκτέλεση του παραπάνω .bat περιοδικά, μέσα από τον προγραμματιστή των Windows

Γ.Εκτέλεση από τις Προγραμματισμένες Εργασίες (Cron Jobs) στο Cpanel με τη χρήση REST Services

Έχουμε επίσης τη δυνατότητα να εκτελέσουμε τις χρονοπρογραμματισμένες εργασίες με το module Web App REST Service(PE.00.087) από τα Cron Jobs στο Cpanel. Αυτό που θα πρέπει να κάνουμε είναι να μεταβούμε στην επιλογή "Cron Jobs"

1. Πρώτο βήμα είναι να ορίσουμε ένα email στο οποίο θα λαμβάνουμε τα αποτελέσματα και τα μηνύματα λάθους που προκύπτουν κατά τις εκτελέσεις των χρονοπρογραμματισμένων εργασιών:

2. Έπειτα θα πρέπει να ορίσουμε τη συχνότητα εκτέλεσης της εργασίας μας στα παρακάτω πεδία. Ακόμη θα πρέπει να ορίσουμε την εντολή που θα εκτελείται. Για το παραδειγμά μας θα προσθέσουμε την εντολή

/usr/bin/curl https://[mydomain]/api/scheduler/exec?appid=[myappid] 

όπου [myappid] είναι το app Id που δημιουργήσαμε με τον τρόπο που περιγράφεται στο Β. Πατάμε "Add New Cron Job".

ΙΔΙΑΙΤΕΡΗ ΠΡΟΣΟΧΗ: υπάρχουν περιπτώσεις προγραμματισμένων εργασιών με εκτέλεση αυτοματισμού, όπου η εκτέλεση του αυτοματισμού απαιτεί πρώτα να έχει γίνει login στο διαχειριστικό(απαίτηση που προέρχεται στις εγκαταστάσεις με php74). Παραδείγματα τέτοιων περιπτώσεων:

  • Εκτέλεση server επικοινωνίας με Web Hotelier
  • Μαζική τιμολόγηση

Τα βήματα που πρέπει να ακολουθήσετε:

Α. Εκτέλεση από το Scheduler των Windows με τη χρήση REST Services

1.Είναι απαραίτητη η ύπαρξη της βιβλιοθήκης curl. Για εγκατάσταση της βιβλιοθήκης curl , θα πρέπει να κατεβάσετε το zip από εδώ: https://curl.se/windows/ . Θα πρέπει να γίνει unzip ώστε τα αρχεία της βιβλιοθήκης να είναι μέσα στον φάκελο C:\curl

2. Δημιουργείτε ένα χρήστη με όνομα πχ [scheduler] και ορίζετε σε αυτόν δικαιώματα admin. Για ευκολία, μπορείτε να ορίσετε απευθείας το [profile με πλήρη δικαιώματα(master)].

3. Από την επιλογή [Toolbox->Εργαλεία Παραμετροποίησης->Παραμετροποίηση Rest Service->App IDs] δημιουργούμε ένα νέο APP ID τσεκάρουμε το "Ναι" στην στήλη "Προβολή" στη γραμμή "Εκτέλεση Χρονοπρογραμματισμένων Εργασιών". Επίσης, τσεκάρουμε το "Ναι" στην στήλη "Νέα εγγραφή(POST)" στις γραμμές [pegapi - σύνδεση χρήστη] και [pegapi - αποσύνδεση χρήστη].

4. Κατεβάζετε το αρχειο scheduler.php (το βρίσκετε με κλικ στο link) και επεξεργάζεστε τις γραμμές 5 έως και 8. Συγκεκριμένα:

  • url: το url της εφαρμογής σας(χωρίς το https)
  • appid: το appid που δημιουργήσατε στο βήμα 3
  • username: το username του χρήστη που δημιουργήσατε στο βήμα 2
  • password: το password του χρήστη που δημιουργήσατε στο βήμα 2

5. Αποθηκεύετε το τροποποιημένο αρχείο σε έναν υποφάκελο στο root του χώρου σας πχ στο \public_html, δημιουργείτε έναν φάκελο με όνομα scheduler. Το αποτέλεσμα θα είναι ότι το αρχείο θα βρίσκεται στο url \public_html\scheduler\scheduler.php .

6. Δημιουργείτε ένα αρχείο .bat με τις εντολές:

@echo off
C:\curl\bin\curl.exe https://[mydomain]/scheduler/scheduler.php

αντικαθιστώντας το [mydomain] με το site σας.

7. Ορίζετε την εκτέλεση του παραπάνω .bat περιοδικά, μέσα από τον προγραμματιστή των Windows

Β. Εκτέλεση από τις Προγραμματισμένες Εργασίες (Cron Jobs) στο Cpanel με τη χρήση REST Services

Έχουμε επίσης τη δυνατότητα να εκτελέσουμε τις χρονοπρογραμματισμένες εργασίες με το module Web App REST Service(PE.00.087) από τα Cron Jobs στο Cpanel.

Σημείωση: τα βήματα είναι παρόμοια αν υπάρχει κάποιο παρεμφερές περιβάλλον διαχείρισης του χώρου σας πχ Plesk.

Αυτό που θα πρέπει να κάνουμε είναι να μεταβούμε στην επιλογή "Cron Jobs"

1. Πρώτο βήμα είναι να ορίσουμε ένα email στο οποίο θα λαμβάνουμε τα αποτελέσματα και τα μηνύματα λάθους που προκύπτουν κατά τις εκτελέσεις των χρονοπρογραμματισμένων εργασιών:

2. Έπειτα θα πρέπει να ορίσουμε τη συχνότητα εκτέλεσης της εργασίας μας στα παρακάτω πεδία. Ακόμη θα πρέπει να ορίσουμε την εντολή που θα εκτελείται. Για το παραδειγμά μας θα προσθέσουμε την εντολή:

https://[mydomain]/scheduler/scheduler.php

αντικαθιστώντας το [mydomain] με το site μας.

Πατάμε "Add New Cron Job".

Ιστορικό εκτέλεσης εργασιών:
[Toolbox->Προγραμματισμένες Εργασίες->Ιστορικό Εκτέλεσης Εργασιών]

Σημαντική σημείωση: για τις εφαρμογές που φιλοξενούνται στη δομή pegcloud.io, θα χρειαστεί να επικοινωνήσετε με το Τεχνικό τμήμα της ΤΕΣΑΕ προκειμένου να γίνουν οι παραπάνω ρυθμίσεις. Στην ΠΠΥ που θα καταχωρήσετε, θα χρειαστεί να αναφέρετε τα εξής:

  • να επιβεβαιώσετε για ποιο url εφαρμογής πρόκειται
  • το appid που θα δημιουργήσετε, σύμφωνα με τα προηγούμενα βήματα
  • τη συχνότητα που θέλετε να εκτελείται η εργασία (π.χ. ανά μισή ώρα)
Τελευταία Αλλαγή: 07/04/2026