Sunday, April 18, 2021

Τι είναι τα cron jobs;

Good News

«Τι είναι τα cron jobs»; Πολύ καλή ερώτηση, την οποία θα σπάσουμε σε δύο υπό-ερωτήσεις και θα τις απαντήσουμε ευθύς αμέσως:

    • Τι είναι ένα cron job;
    • Τι είναι το WP-CRON;

Τι είναι τα cron jobs

Στον πυρήνα του, ένα cron λειτουργεί ως ένα λογισμικό που προγραμματίζει διάφορες διεργασίες με βάση τον χρόνο. Διαχειρίζεται διάφορα tasks που πρέπει να γίνονται σε τακτική βάση και σε συγκεκριμένο χρόνο.

Για παράδειγμα, ας υποθέσουμε ότι έχετε ένα WordPress blog και στην κεντρική του σελίδα θέλετε σε περίοπτη θέση να εμφανίζεται καθημερινά η πρόβλεψη του καιρού.

Τι θα έπρεπε να κάνετε; Καθημερινά, θα έπρεπε να ψάχνετε οι ίδιοι την πρόβλεψη του καιρού και στην συνέχεια να ενημερώνετε το blog σας. 

Ή θα μπορούσατε να προσλάβετε κάποιον να συνδέεται για λογαριασμό σας κάθε πρωί στο blog σας, να βρίσκει την τρέχουσα πρόβλεψη καιρού, και να ενημερώνει το ανάλογο widget.

Έχει νόημα; Προφανώς όχι.

Μία περισσότερο αποτελεσματική και ανέξοδη επιλογή θα ήταν να έχετε ένα πρόγραμμα που «τρέχει» κάθε πρωί (σε ώρα της επιλογής σας), «μιλάει» με ένα API για να λάβει την πιο πρόσφατη πρόβλεψη καιρού και ενημερώνει τη βάση δεδομένων του blog σας χωρίς να χρειαστεί να παρέμβει ανθρώπινο χέρι.

Το πρόγραμμα το οποίο αναλαμβάνει να «τρέξει» το λογισμικό σας που αφορά την πρόβλεψη του καιρού σε καθημερινή βάση και σε συγκεκριμένη χρονική στιγμή, είναι το CRON (ή Cron Job).

Το όνομά του, όπως πιθανά ήδη έχετε καταλάβει έχει ελληνική προέλευση και σχετίζεται με τον χρόνο καθώς πρόκειται ουσιαστικά για διαδικασίες οι οποίες προσδιορίζονται μέσα στον (και με βάση τον) χρόνο. 

Σήμερα, τα περισσότερα συστήματα ενσωματώνουν κάποιου είδους ανάλογη τεχνολογία – ακόμη και ένα iPhone μέσω της εφαρμογής Shortcuts μπορεί να αναλάβει να στείλει καθημερινά ένα συγκεκριμένο SMS σε συγκεκριμένη χρονική στιγμή και συγκεκριμένο αποδέκτη. 

Το cron, λοιπόν, εκτελείται πάντοτε στο παρασκήνιο και κάθε λεπτό ελέγχει το crontab (ή αλλιώς cron table) για να δει αν υπάρχει κάτι που πρέπει να γίνει. Αν όχι, πέφτει πάλι «σε ύπνο». 

Σε αυτό το σημείο, σκεφθείτε το crontab σαν το ημερολόγιο το οποίο έχει τις πληροφορίες που αφορούν στο πότε και ποιο πρόγραμμα πρέπει να εκτελεστεί, Κάθε επιπλέον γραμμή σε αυτό το αρχείο σημαίνει και ένα διαφορετικό task.

Οι περισσότερες εταιρείες παροχής υπηρεσιών web hosting, όπως η MultiHosting, σας παρέχουν πρόσβαση στο συγκεκριμένο σύστημα. 

Τι είναι το WP-CRON

Το WordPress, με τη σειρά του, κάνει τα πράγματα λίγο διαφορετικά – αναφερόμαστε στο WordPress γιατί, καλώς ή κακώς, είναι το πιο δημοφιλές λογισμικό δημιουργίας ιστοσελίδων.

Επειδή πολλοί δημιουργοί plugins χρειάζονταν τη δυνατότητα να προγραμματίζουν διάφορα tasks να συμβαίνουν σε τακτά χρονικά διαστήματα, και επειδή πολλοί ιδιοκτήτες ιστοσελίδων αγνοούν την τοποθεσία του crontab και πολύ περισσότερο πως να το τροποποιήσουν, το WordPress επανεφήυρε τα cron jobs.

Στον πυρήνα του, το WP-CRON λειτουργεί όπως ένα παραδοσιακό cron υπό την έννοια πως ένας developer να χρονοπρογραμματίσει ένα task σε τακτική βάση.

Ωστόσο, αντίθετα με ένα παραδοσιακό cron, το WordPress δεν έχει κάποιο πρόγραμμα το οποίο τρέχει διαρκώς στο παρασκήνιο στον server σας. 

Για να δουλέψει ο χρονοπρογραμματισμός στο WordPress, το WP-CRON λειτουργεί ως μια διεργασία η οποία εκτελείται κάθε φορά που θα «τρέξει» μία συγκεκριμένη σελίδα.

Σε δημοφιλείς ιστοσελίδες, αυτό δουλεύει μία χαρά. Όμως, αν το site σας δεν έχει πολλούς επισκέπτες, ένα task το οποίο είναι προγραμματισμένο για παράδειγμα στις 04:00 το πρωί, μπορεί  να εκτελεστεί στις 07:24 αν στο μεσοδιάστημα το site δεν έχει κανέναν επισκέπτη.

Η αλήθεια είναι πως αυτό μπορεί σε ορισμένες περιπτώσεις να είναι ok ενώ σε άλλες περιπτώσεις μπορεί να συνιστά πρόβλημα.

Κατά συνέπεια, αν τα tasks τα οποία θέλετε να εκτελούνται αυτόματα πρέπει αυστηρά να «τρέχουν» την ώρα που τα ρυθμίσατε, τότε το WP-CRON δεν είναι κάτι που θα θέλατε να χρησιμοποιήσετε.

Αντίθετα, αν τα tasks τα οποία προγραμματίσατε μπορούν να εκτελεστούν «κοντά στην ώρα» που προγραμματίσατε, τότε το WP-CRON είναι ιδιαίτερα χρήσιμο για εσάς.

Επαλαμβάνω: παίζει σημαντικό ρόλο σε όλα αυτά η κίνηση της ιστοσελίδας σας.

Ποιες είναι οι εναλλακτικές σας;

Αν τα tasks τα οποία θέλετε να εκτελούνται αυτόματα είναι υψηλής κρισιμότητας και επιθυμείτε να εκτελούνται την ώρα που είναι προγραμματισμένα, και βρίσκεστε στην σπάνια πλην δυσάρεστη θέση ο πάροχός σας να μην προσφέρει πρόσβαση στο cron του συστήματος, έχετε δύο εναλλακτικές.

Αρχικά, η πιο απλή λύση είναι να αλλάξετε πάροχο. Μπορείτε πάντα να έρθετε σε μια σύγχρονη εταιρεία παροχής υπηρεσιών web hosting, όπως και η MultiHosting, η οποία θα σας προσφέρει το… αυτονόητο: την πρόσβαση που χρειάζεστε.

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

Ουσιαστικά τρέχουν οι ίδιοι ένα σύστημα που σας επιτρέπει συνήθως μέσω ενός web interface να προγραμματίσετε ένα task. Σε αυτή την περίπτωση θα γίνει χρήση ενός προγράμματος όπως το curl ή το wget τα οποία θα «καλέσουν» το URL στην ιστοσελίδα σας για να εκτελεσθεί το task της επιλογής σας.

Τα περισσότερα plugins τα οποία χρειάζονται cron θα σας δίνουν και το ανάλογο URL για να καλέσετε στην περίπτωση που θέλετε να χρησιμοποιήσετε μία υπηρεσία τρίτων. 

Το μόνο που έχετε να κάνετε είναι να αντιγράψετε και να επικολλήσετε το URL, να επιλέξετε τον χρόνο εκτέλεσης και… αυτό ήταν.

H χρησιμότητα των cron jobs

Μόλις καταλάβετε τον τρόπο με τον οποίο θα δουλέψετε τα επαλαμβανόμενα tasks, θα διαπιστώσετε πως το σύστημα των cron jobs είναι ένα ιδιαίτερα χρήσιμο εργαλείο για το οποίο θα βρίσκετε ολοένα και περισσότερες χρήσεις.

Εάν έχετε εγκατεστημένα plugins στο WordPress σας, μπορώ σχεδόν να σας εγγυηθώ πως η σελίδα σας έχει wp-cron jobs να «τρέχουν». 

Στην περίπτωση που θέλετε να ικανοποιήσετε την περιέργειά σας, μπορείτε απλά να επισκεφθείτε το WordPress plugin repository και να ψάξετε τον όρο cron. 

Υπάρχουν διάφορα plugins τα οποία θα σας δείξουν όλη την δραστηριότητα του WP-CRON στο site σας. 

Προσοχή, ωστόσο. Τα plugins ρυθμίζουν αυτά τα tasks για συγκεκριμένους λόγους. Αν αποφασίσετε ότι κάποιο δεν σας αρέσει και το διαγράψετε, το plugin το οποίο στηρίζεται σε αυτή την αυτοματοποιημένη διεργασία ενδεχόμενα θα πάψει να λειτουργεί.

 

ΑΦΗΣΤΕ ΜΙΑ ΑΠΑΝΤΗΣΗ

εισάγετε το σχόλιό σας!
παρακαλώ εισάγετε το όνομά σας εδώ

- Advertisement -

Νέα άρθρα