तुमचे Shopify Flow वर्कफ्लो ऑप्टिमाइझ करणे

जेव्हा तुम्ही वर्कफ्लो तयार करता, तेव्हा तो शक्य तितक्या कार्यक्षमतेने रन होत असल्याची तुम्हाला खात्री करायची असते. या दस्तऐवजात तुमचे वर्कफ्लो थ्रॉटल केले जाण्यास किंवा API मर्यादा संपुष्टात येण्यास कारणीभूत ठरू शकणाऱ्या परिस्थिती आणि त्या समस्यांचे निराकरण कसे करावे किंवा त्यांच्यासाठी पर्यायी मार्ग कसा शोधावा यावरील टिप्स नमूद केल्या आहेत.

कामगिरीच्या सामान्य समस्या

या विभागात अशा सामान्य परिस्थिती स्पष्ट केल्या आहेत, ज्यामुळे तुमच्या वर्कफ्लोमध्ये कामगिरीच्या समस्या उद्भवू शकतात. एकाच वेळी एकापेक्षा जास्त परिस्थिती निर्माण होणे शक्य आहे, ज्यामुळे कामगिरीच्या समस्या दिसून येण्याची शक्यता वाढते. एडिटर कॉन्फिगरेशन किंवा रेट लिमिटिंगशी संबंधित त्रुटींसाठी, ट्रबलशूटिंग मार्गदर्शक वापरा.

हाय व्हॉल्युम ट्रिगर्स

हाय व्हॉल्युम ट्रिगर्स हे असे असतात जेथे मूळ इव्हेंट वारंवार घडतो. उदाहरणार्थ, Product variant inventory quantity changed ट्रिगर शॉपमधील प्रत्येक इन्व्हेंटरी बदलासाठी रन होतो. ट्रिगरचा व्हॉल्युम तुमच्या वर्कफ्लोमधील कोणत्याही समस्येवर गुणक (मल्टिप्लायर) म्हणून कार्य करतो. उदाहरणार्थ, जर वर्कफ्लो 100 उत्पादने मिळवत असेल आणि तो प्रति मिनिट 1,000 वेळा रन होत असेल, तर तो प्रति मिनिट 1,00,000 उत्पादने मिळवेल. यामुळे कामगिरीच्या समस्या उद्भवू शकतात.

उपाय: कमी डेटा वापरून तुमचे वर्कफ्लो ऑप्टिमाइझ करा किंवा तुमचा वर्कफ्लो विभागण्यासाठी Wait पायऱ्या वापरा.

समान ट्रिगर वापरणारे अनेक वर्कफ्लो

Flow मध्ये, तुम्ही समान ट्रिगर वापरून एकापेक्षा जास्त वर्कफ्लो तयार करू शकता. जेव्हा इव्हेंट घडेल तेव्हा हे वर्कफ्लो एकमेकांच्या समांतर रन होतील. तुम्ही खालील कारणांसाठी समान ट्रिगर वापरून खूप जास्त वर्कफ्लो रन केल्यास हे समस्याप्रधान असू शकते:

  • वर्कफ्लो एकमेकांशी कॉन्फ्लिक्ट करू शकतात.
  • वर्कफ्लो एकाच वेळी डेटा मिळवण्याचा आणि API कॉल करण्याचा प्रयत्न करत असतात आणि Shopify API मर्यादांमुळे तुमचे शॉप एका वेळी किती विनंत्या हाताळू शकते यावर मर्यादा असते.

उपाय: समान ट्रिगर वापरणाऱ्या वर्कफ्लोंना एकाच वर्कफ्लोमध्ये एकत्र करा. हे तुम्हाला त्यापैकी प्रत्येक कधी कार्यान्वित होईल हे नियंत्रित करण्याची अनुमती देते, जेणेकरून ते एकमेकांशी कॉन्फ्लिक्ट करणार नाहीत. जर वर्कफ्लो मोठ्या प्रमाणात डेटा पुनर्प्राप्त करत नसतील किंवा ते पुनर्प्राप्त करत असलेला डेटा समान असेल, तर वर्कफ्लो एकत्र करणे विशेषतः उपयुक्त ठरते. जर वर्कफ्लो मोठ्या प्रमाणात वेगवेगळा डेटा पुनर्प्राप्त करत असतील, तर तुम्हाला असे दिसून येईल की त्यांना वेगळे ठेवल्याने अधिक चांगली कामगिरी मिळते.

सूची किंवा चुकीचा डेटा वापरणे

जेव्हा तुम्ही वर्कफ्लो तयार करता, तेव्हा तुम्ही उत्पादने किंवा ऑर्डर्स यांसारख्या ऑब्जेक्ट्सची सूची वापरू शकता. तुम्ही ऑब्जेक्ट्सची सूची वापरल्यास, Flow सूचीमधील सर्व ऑब्जेक्ट्स मिळवेल. सूचीमध्ये खूप डेटा असताना ही समस्या असू शकते.

दुसरी सामान्य समस्या म्हणजे चुकून चुकीचा डेटा निवडणे. उदाहरणार्थ, ऑर्डरवरील उत्पादन डेटा तपासण्यासाठी, तुम्ही order / line items / product / tags ऐवजी order / publication / products / tags निवडले असेल. पहिला निकाल सहसा चुकीचा असतो, कारण जेव्हा ऑर्डरवरील उत्पादने तपासण्याचा हेतू असतो, तेव्हा तो प्रकाशनासाठी सर्व उत्पादने मिळवतो. एवढी मोठी सूची निवडल्याने कामगिरीच्या समस्या उद्भवू शकतात आणि चुकीची सूची निवडल्याने तुमचे ऑटोमेशन चुकीची क्रिया करू शकते.

उपाय: तुम्हाला आवश्यक असलेला डेटा काळजीपूर्वक निवडा आणि आवश्यकता नसताना सूची वापरणे टाळा. तुमचे वर्कफ्लो तुमच्या अपेक्षेनुसार काम करत आहेत याची खात्री करण्यासाठी त्यांची चाचणी घ्या.

मेटाफील्ड्स

वैयक्तिक मेटाफील्ड किंवा मेटाऑब्जेक्ट डेटा मिळवण्यामुळे कामगिरीच्या समस्या उद्भवू नयेत. तथापि, metafields ही सूची निवडणे आणि संसाधनवरील सर्व मेटाफील्ड्सवर लूप करणे ही एक सामान्य समस्या आहे. जर value फील्डमध्ये खूप डेटा असेल, उदाहरणार्थ, जेव्हा HTML ऑब्जेक्ट्स वापरले जातात, तेव्हा यामुळे मोठ्या प्रमाणात डेटावर प्रक्रिया होऊ शकते आणि संभाव्यतः कामगिरीच्या समस्या उद्भवू शकतात.

उपाय: metafields ऐवजी metafield ऑब्जेक्ट वापरा.

Get data क्रियांचा अतिवापर

Get order data सारख्या Get data क्रियेचा वापर करणारे वर्कफ्लो Get data क्रियांमधून प्रति वर्कफ्लो जास्तीत जास्त 100 ऑब्जेक्ट्स परत करण्यासाठी डिझाइन केलेले आहेत. 100 पेक्षा जास्त ऑब्जेक्ट्स असल्यामुळे कामगिरीच्या समस्या उद्भवू शकतात.

उपाय: वर्कफ्लो अधिक वेळा रन करा जेणेकरून तुमच्या क्वेरीला 100 पेक्षा जास्त निकाल परत करण्याची आवश्यकता भासणार नाही. वारंवार क्वेरी करण्याऐवजी त्याच Get data क्रियेचा पुन्हा वापर करा.

Get data क्रियांमध्ये कोणतेही क्वेरी फिल्टर्स नाहीत

Get data क्रिया Shopify API ला कॉल करतात. जर कोणतीही क्वेरी उपस्थित नसेल, तर API एकतर सर्व संसाधने परत करेल किंवा एकही नाही. यामुळे कामगिरीच्या समस्या उद्भवू शकतात, परंतु जेव्हा तुम्ही वर्कफ्लोमध्ये नंतर परत केलेला डेटा वापरता तेव्हा तुमच्या शॉपमध्ये चुकीच्या क्रिया देखील होऊ शकतात.

उपाय: तुमच्या Get data क्रियांमध्ये नेहमी क्वेरी फिल्टर्स समाविष्ट करा.

Get data क्रियांमध्ये चुकीचे क्वेरी फिल्टर्स

Get data क्वेरीज क्वेरी फिल्टर्सच्या मर्यादित सेटला, एका विशिष्ट सिंटॅक्सला आणि फिल्टर्समध्ये वापरल्या जाऊ शकणाऱ्या मूल्यांच्या विशिष्ट सेटला सपोर्ट करतात. चुकीचे फिल्टर, फिल्टरचे मूल्य किंवा सिंटॅक्स टाकल्यामुळे संपूर्ण क्वेरीकडे दुर्लक्ष केले जाऊ शकते, ज्यामुळे कोणतेही क्वेरी फिल्टर उपस्थित नसल्यावर उद्भवणाऱ्या समस्यांसारख्याच समस्या निर्माण होऊ शकतात.

उपाय: उपलब्ध क्वेरी फिल्टर्सची सूची शोधण्यासाठी Flow मधील क्रियेद्वारे प्रदान केलेले दस्तऐवजीकरण वापरा. तुमचे क्वेरी फिल्टर्स अपेक्षित डेटा मिळवून देतात याची खात्री करण्यासाठी नेहमी त्यांची चाचणी घ्या. परत आलेल्या डेटाचे पुनरावलोकन करण्यासाठी तुम्ही Flow मध्ये Log Output क्रिया वापरू शकता किंवा Postman सारख्या API क्लायंटद्वारे किंवा GraphiQL ॲपद्वारे थेट Shopify Admin API ला कॉल करू शकता.

कामगिरीच्या सामान्य समस्यांसाठी अतिरिक्त उपाय

डेटा मिळवण्यास विलंब करण्यासाठी Wait पायऱ्या वापरा

Wait पायऱ्या तुम्हाला वर्कफ्लो एका विशिष्ट काळासाठी थांबवण्याची अनुमती देतात, परंतु Wait पायऱ्यांचा वापर तुमचे वर्कफ्लो ऑप्टिमाइझ करण्यासाठी देखील केला जाऊ शकतो. प्रत्येक Wait पायरी तुमच्या वर्कफ्लोच्या एक्झिक्यूशनला प्रभावीपणे वेगळ्या टप्प्यांमध्ये विभाजित करते. जेव्हा वर्कफ्लो रन होतो, तेव्हा तो पहिल्या Wait पायरीपर्यंत आवश्यक असलेला डेटा आपोआप मिळवतो (आणि उर्वरित वर्कफ्लोसाठी Wait पायरीनंतर पुन्हा डेटा मिळवतो).

जर एखादा वर्कफ्लो हाय व्हॉल्युम ट्रिगर वापरत असेल आणि मोठ्या प्रमाणात डेटा मिळवत असेल, पण फक्त कधीतरीच कृती करणार असेल, तर तुम्ही कोणतीही जटिल डेटा किंवा लॉजिक अट (कंडिशन) आणि Wait पायरी जोडीच्या नंतर ठेवू शकता. उदाहरणार्थ:

  1. ट्रिगर: उत्पादन व्हेरिएंटच्या इन्व्हेंटरीचे प्रमाण बदलले.
  2. अट: उत्पादन एखाद्या संग्रहामध्ये आहे की नाही ते तपासा.
  3. जर सत्य असेल, तर कृती: 2 सेकंद प्रतीक्षा करा.
  4. कृती: ग्राहकाला ईमेल पाठवा (भरपूर डेटासह).

या उदाहरणामध्ये, 4थ्या पायरीसाठी आवश्यक असलेल्या डेटाची क्वेरी फक्त Wait पायरी पूर्ण झाल्यानंतरच केली जाते. जर अट सहसा असत्य (false) असेल, तर याचा अर्थ असा की वर्कफ्लो अधिक वेगाने आणि अधिक कार्यक्षमतेने रन होईल.

काय ऑप्टिमाइझ करू नये

अनेक क्रियांमध्ये समान डेटा वापरणे

जेव्हा तुम्ही अनेक पायऱ्यांमध्ये समान फील्ड वापरता, तेव्हा Flow त्या फील्ड्सच्या वापराचे विश्लेषण करतो आणि तो डेटा फक्त एकदाच मिळवतो. याचा अर्थ असा की कामगिरीची चिंता न करता तुम्ही हवा तितक्या वेळा डेटा वापरू शकता.