Βελτιστοποίηση των ροών εργασίας του Shopify Flow
Όταν δημιουργείτε μια ροή εργασίας, θέλετε να βεβαιωθείτε ότι εκτελείται όσο το δυνατόν πιο αποτελεσματικά. Αυτό το έγγραφο περιγράφει σενάρια που ενδέχεται να προκαλέσουν ανακοπή στις ροές εργασίας σας ή να εξαντλήσουν τα όρια του API και παρέχει συμβουλές για το πώς να επιλύσετε αυτά τα προβλήματα ή να βρείτε πρόχειρες λύσεις.
Σε αυτή τη σελίδα
Συνήθη προβλήματα απόδοσης
Αυτή η ενότητα περιγράφει συνήθη σενάρια που μπορούν να προκαλέσουν προβλήματα απόδοσης στις ροές εργασίας σας. Είναι πιθανό να έχετε περισσότερα από ένα σενάρια ταυτόχρονα, γεγονός που αυξάνει την πιθανότητα να παρατηρήσετε προβλήματα απόδοσης. Για σφάλματα που σχετίζονται με τη διαμόρφωση του προγράμματος επεξεργασίας ή τον περιορισμό ρυθμού, χρησιμοποιήστε τον οδηγό αντιμετώπισης προβλημάτων.
Στοιχεία ενεργοποίησης μεγάλου όγκου
Τα στοιχεία ενεργοποίησης μεγάλου όγκου είναι εκείνα στα οποία το υποκείμενο συμβάν συμβαίνει συχνά. Για παράδειγμα, το στοιχείο ενεργοποίησης Αλλαγή ποσότητας αποθέματος παραλλαγής προϊόντος εκτελείται για κάθε αλλαγή αποθέματος σε ένα κατάστημα. Ο όγκος ενός στοιχείου ενεργοποίησης λειτουργεί ως πολλαπλασιαστής για οποιοδήποτε πρόβλημα στη ροή εργασίας σας. Για παράδειγμα, εάν μια ροή εργασίας ανακτά 100 προϊόντα και εκτελείται 1.000 φορές ανά λεπτό, τότε θα ανακτά 100.000 προϊόντα ανά λεπτό. Αυτό μπορεί να προκαλέσει προβλήματα απόδοσης.
Λύση: Βελτιστοποιήστε τις ροές εργασίας σας χρησιμοποιώντας λιγότερα δεδομένα ή χρησιμοποιήστε βήματα αναμονής για να διαιρέσετε τη ροή εργασίας σας.
Πολλές ροές εργασίας που χρησιμοποιούν το ίδιο στοιχείο ενεργοποίησης
Στο Flow, μπορείτε να δημιουργήσετε περισσότερες από μία ροές εργασίας χρησιμοποιώντας το ίδιο στοιχείο ενεργοποίησης. Αυτές οι ροές εργασίας θα εκτελεστούν παράλληλα η μία με την άλλη όταν συμβεί το γεγονός. Αυτό μπορεί να είναι προβληματικό εάν εκτελείτε πάρα πολλές ροές εργασίας που χρησιμοποιούν το ίδιο στοιχείο ενεργοποίησης για τους ακόλουθους λόγους:
- Οι ροές εργασίας μπορούν να έρχονται σε διένεξη μεταξύ τους.
- Οι ροές εργασίας προσπαθούν να ανακτήσουν δεδομένα και να καλέσουν API ταυτόχρονα και το κατάστημά σας είναι περιορισμένο στον αριθμό των αιτημάτων που μπορεί να διαχειριστεί ταυτόχρονα από τα όρια του Shopify API.
Λύση: Συνδυάστε τις ροές εργασίας που χρησιμοποιούν το ίδιο στοιχείο ενεργοποίησης σε μία ενιαία ροή εργασίας. Αυτό σας επιτρέπει επίσης να ελέγχετε πότε εκτελείται καθεμία από αυτές, ώστε να μην έρχονται σε διένεξη μεταξύ τους. Ο συνδυασμός ροών εργασίας είναι ιδιαίτερα χρήσιμος εάν οι ροές εργασίας δεν ανακτούν πολλά δεδομένα ή τα δεδομένα που ανακτούν είναι τα ίδια. Εάν οι ροές εργασίας ανακτούν πολλά διαφορετικά δεδομένα, τότε μπορεί να διαπιστώσετε ότι η διατήρησή τους ξεχωριστά έχει ως αποτέλεσμα καλύτερη απόδοση.
Χρήση λιστών ή λανθασμένων δεδομένων
Όταν δημιουργείτε μια ροή εργασίας, μπορεί να χρησιμοποιήσετε μια λίστα αντικειμένων, όπως προϊόντα ή παραγγελίες. Εάν χρησιμοποιήσετε μια λίστα αντικειμένων, τότε το Flow θα ανακτήσει όλα τα αντικείμενα στη λίστα. Αυτό μπορεί να αποτελέσει πρόβλημα όταν η λίστα περιέχει πολλά δεδομένα.
Ένα άλλο συνηθισμένο πρόβλημα είναι η κατά λάθος επιλογή λανθασμένων δεδομένων. Για παράδειγμα, για να ελέγξετε τα δεδομένα προϊόντος σε μια παραγγελία, μπορεί να έχετε επιλέξει order / publication / products / tags αντί για order / line items / product / tags. Το πρώτο αποτέλεσμα είναι συνήθως λανθασμένο, καθώς ανακτά όλα τα προϊόντα για μια δημοσίευση, ενώ η πρόθεση είναι ο έλεγχος των προϊόντων στην παραγγελία. Η επιλογή μιας τόσο μεγάλης λίστας μπορεί να προκαλέσει προβλήματα απόδοσης και η επιλογή της λανθασμένης λίστας μπορεί να έχει ως αποτέλεσμα η αυτοματοποίησή σας να κάνει το λάθος πράγμα.
Λύση: Επιλέξτε προσεκτικά τα δεδομένα που χρειάζεστε και αποφύγετε τη χρήση λιστών όταν δεν τις χρειάζεστε. Δοκιμάστε τις ροές εργασίας σας για να βεβαιωθείτε ότι κάνουν αυτό που περιμένετε.
Μετα-πεδία
Η ανάκτηση μεμονωμένων δεδομένων μετα-πεδίου ή μετα-αντικειμένου δεν θα πρέπει να προκαλεί προβλήματα απόδοσης. Ωστόσο, ένα συνηθισμένο πρόβλημα είναι η επιλογή της λίστας metafields και η επανάληψη σε όλα τα μετα-πεδία σε έναν πόρο. Εάν ένα πεδίο value περιέχει πολλά δεδομένα, για παράδειγμα, όταν χρησιμοποιούνται αντικείμενα HTML, τότε αυτό μπορεί να έχει ως αποτέλεσμα την επεξεργασία πολλών δεδομένων και ενδεχομένως να προκαλέσει προβλήματα απόδοσης.
Λύση: Χρησιμοποιήστε το αντικείμενο metafield αντί για το metafields.
Υπερβολική χρήση των ενεργειών «Λήψη δεδομένων»
Οι ροές εργασίας που χρησιμοποιούν μια ενέργεια Λήψη δεδομένων, όπως η ενέργεια Λήψη δεδομένων παραγγελίας, έχουν σχεδιαστεί για να επιστρέφουν το πολύ 100 αντικείμενα ανά ροή εργασίας από ενέργειες Λήψη δεδομένων. Η υπέρβαση των 100 αντικειμένων μπορεί να προκαλέσει προβλήματα απόδοσης.
Λύση: Εκτελέστε τη ροή εργασίας πιο συχνά, ώστε το ερώτημά σας να μην χρειάζεται να επιστρέφει περισσότερα από 100 αποτελέσματα. Επαναχρησιμοποιήστε την ίδια ενέργεια Λήψη δεδομένων αντί να κάνετε επαναλαμβανόμενα ερωτήματα.
Απουσία φίλτρων ερωτημάτων στις ενέργειες «Λήψη δεδομένων»
Οι ενέργειες Λήψη δεδομένων καλούν το Shopify API. Εάν δεν υπάρχει ερώτημα, τότε το API θα επιστρέψει όλους τους πόρους ή κανέναν. Αυτό μπορεί να προκαλέσει προβλήματα απόδοσης, αλλά μπορεί επίσης να προκαλέσει τη λήψη λανθασμένων ενεργειών στο κατάστημά σας όταν χρησιμοποιείτε τα δεδομένα που επιστρέφονται αργότερα στη ροή εργασίας.
Λύση: Να περιλαμβάνετε πάντα φίλτρα ερωτημάτων στις ενέργειές σας Λήψη δεδομένων.
Λανθασμένα φίλτρα ερωτημάτων στις ενέργειες «Λήψη δεδομένων»
Τα ερωτήματα Λήψης δεδομένων υποστηρίζουν ένα περιορισμένο σύνολο φίλτρων ερωτημάτων, μια συγκεκριμένη σύνταξη και ένα συγκεκριμένο σύνολο τιμών που μπορούν να χρησιμοποιηθούν σε φίλτρα. Η εισαγωγή λανθασμένου φίλτρου, τιμής φίλτρου ή σύνταξης μπορεί να προκαλέσει την πλήρη παράβλεψη του ερωτήματος, το οποίο μπορεί να προκαλέσει προβλήματα παρόμοια με εκείνα που προκύπτουν όταν δεν υπάρχει φίλτρο ερωτήματος.
Λύση: Χρησιμοποιήστε την τεκμηρίωση που παρέχεται από την ενέργεια στο Flow για να βρείτε τη λίστα με τα διαθέσιμα φίλτρα ερωτημάτων. Να δοκιμάζετε πάντα τα φίλτρα ερωτημάτων σας για να βεβαιωθείτε ότι επιστρέφουν τα αναμενόμενα δεδομένα. Μπορείτε να χρησιμοποιήσετε μια ενέργεια «Καταγραφή εξόδου» στο Flow για να ελέγξετε τα δεδομένα που επιστρέφονται ή μπορείτε να καλέσετε απευθείας το Shopify Admin API μέσω μιας εφαρμογής-πελάτη API όπως το Postman ή μέσω της εφαρμογής GraphiQL.
Πρόσθετες λύσεις για συνήθη προβλήματα απόδοσης
Χρήση βημάτων αναμονής για την καθυστέρηση της ανάκτησης δεδομένων
Τα βήματα αναμονής σάς επιτρέπουν να θέσετε σε παύση μια ροή εργασίας για ένα συγκεκριμένο χρονικό διάστημα, αλλά τα βήματα αναμονής μπορούν επίσης να χρησιμοποιηθούν για τη βελτιστοποίηση των ροών εργασίας σας. Κάθε βήμα αναμονής χωρίζει ουσιαστικά την εκτέλεση της ροής εργασίας σας σε ξεχωριστές φάσεις. Όταν εκτελείται η ροή εργασίας, ανακτά αυτόματα τα δεδομένα που απαιτούνται μέχρι το πρώτο βήμα αναμονής (και ανακτά ξανά δεδομένα μετά το βήμα αναμονής για την υπόλοιπη ροή εργασίας).
Εάν μια ροή εργασίας χρησιμοποιεί ένα στοιχείο ενεργοποίησης μεγάλου όγκου και ανακτά πολλά δεδομένα, αλλά θα εκτελεί ενέργειες μόνο περιστασιακά, τότε μπορείτε να τοποθετήσετε τυχόν σύνθετα δεδομένα ή λογική μετά από ένα ζεύγος συνθήκης και βήματος αναμονής. Για παράδειγμα:
- Στοιχείο ενεργοποίησης: Αλλαγή ποσότητας αποθέματος παραλλαγής προϊόντος.
- Συνθήκη: Έλεγχος εάν το προϊόν βρίσκεται σε μια συλλογή.
- Αν είναι αληθές, Ενέργεια: Αναμονή 2 δευτερολέπτων.
- Ενέργεια: Αποστολή email στον πελάτη (με πολλά δεδομένα).
Σε αυτό το παράδειγμα, τα δεδομένα που απαιτούνται για το βήμα 4 υποβάλλονται σε ερώτημα μόνο μετά την ολοκλήρωση του βήματος αναμονής. Εάν η συνθήκη είναι συνήθως ψευδής, τότε αυτό σημαίνει ότι η ροή εργασίας θα εκτελεστεί ταχύτερα και πιο αποτελεσματικά.
Τι να μην βελτιστοποιήσετε
Χρήση των ίδιων δεδομένων σε πολλαπλές ενέργειες
Όταν χρησιμοποιείτε το ίδιο πεδίο σε πολλαπλά βήματα, το Flow αναλύει τη χρήση αυτών των πεδίων και ανακτά αυτά τα δεδομένα μόνο μία φορά. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιείτε τα δεδομένα όσες φορές θέλετε χωρίς να ανησυχείτε για την απόδοση.