Laravel Redis Queue से डुप्लिकेट कार्य हटाएँ

2
MonOve 2020-07-28 09:40.

मेरे पास एक विशेष मॉडल के लिए कैश को साफ़ करने और पुनर्निर्माण करने के लिए एक फैला हुआ काम है।

कैश के पुनर्निर्माण में लगभग 10 सेकंड लगते हैं।

नौकरी कई बार - क्रमिक रूप से निकाल दी जाती है और मैं अक्सर कई कतार वाली नौकरियों के साथ समाप्त होता है, सभी एक ही मॉडल के लिए एक ही कैश समाशोधन और पुनर्निर्माण करते हैं।

मैं वर्तमान नौकरी को भेजने से ठीक पहले उस विशेष मॉडल के लिए समान नौकरी (कैश पुनर्निर्माण) में से किसी को हटाने का एक तरीका ढूंढ रहा हूं।

2 answers

1
Ersoy 2020-07-28 10:25.

डुप्लिकेट नौकरी को हटाने का कोई आसान या% 100 तरीका नहीं है। लारवेल की रेडिस कतार चालक विलंबित / गैर-विलंबित नौकरियों के लिए सॉर्ट किए गए सेट और सूचियों का उपयोग करता है। यह उत्तर इसके बारे में कुछ विवरण प्रदान कर सकता है। जब आप नौकरी को कतार में धकेलते हैं तो आप इसे संसाधित होने से पहले हटा नहीं सकते हैं। (आप कोशिश कर सकते हैं, लेकिन यह कठिन है, लिंक के उत्तर हैं)।

कैश अमान्य कार्य को ट्रिगर करने से रोकने के लिए आप क्या कर सकते हैं एक नियंत्रण तंत्र बना रहे हैं। मान लें कि नौकरी छोड़ने से पहले, आपने एक विशिष्ट पहचानकर्ता निर्धारित किया है। आप Redis SET कमांड का उपयोग EXऔर NXविकल्प के साथ कर सकते हैं ।

  • स्ट्रिंग मान रखने के लिए कुंजी सेट करें। यदि कुंजी पहले से ही एक मान रखती है, तो यह अपने प्रकार की परवाह किए बिना, ओवरराइट किया जाता है।
  • एनएक्स - केवल कुंजी सेट करें यदि यह पहले से मौजूद नहीं है।
  • EX सेकंड - निर्दिष्ट समय समाप्त करें, सेकंड में।

इससे पहले कि आप अपनी नौकरी को धक्का दें, आप पहले कमांड को कुछ इस तरह निष्पादित करें;

127.0.0.1:6379> set mymodel:id:1 some-random-string-test EX 15 NX
OK
127.0.0.1:6379> ttl mymodel:id:1
(integer) 10
127.0.0.1:6379> get mymodel:id:1
"some-random-string-test"
127.0.0.1:6379> set mymodel:id:1 some-random-string-test-another EX 15 NX
(nil)
127.0.0.1:6379>

आप जो कर रहे हैं, वह idआपके मॉडल का है और एक कुंजी बनाएं। आप अपनी कुंजी एक्सपायर और set if not existsविकल्प के साथ सेट करें । यदि प्रतिक्रिया है OKतो आप दिए गए समय अंतराल में पहली बार इस कुंजी को सेट कर रहे हैं (मेरे उदाहरण में 15 सेकंड)। यदि आपको nilप्रतिक्रिया मिलती है तो इसका मतलब है कि, दिए गए आईडी के लिए काम अभी भी है locked। इसलिए आप इसे नहीं भेजेंगे। यह आपको प्रत्येक मॉडल के लिए 15 सेकंड का समय विंडो प्रदान करेगा जो आपको इसे भेजने से रोक देगा।

-

यदि आप नौकरी को ट्रिगर नहीं करना चाहते (नहीं चाहते), तो आप उसी कमांड का उपयोग अलग तरीके से कर सकते हैं। जब भी आप प्रेषण कार्य के बारे में होते हैं तो आप एक विशिष्ट पहचानकर्ता बनाते हैं set mymodel:id:1 some-random-string-test EX 15 NXऔर इसे भेजने से पहले निष्पादित करते हैं। लेकिन इस बार आप नौकरी करने वाले के लिए भी पहचानकर्ता भेजेंगे। अपनी handleपद्धति की शुरुआत में , आप GETमूल्य प्राप्त करने के लिए रेडिस की विधि का उपयोग करेंगे mymodel:id:1और इसकी पहचान उस पहचानकर्ता से करेंगे जो आपने नौकरी के निर्माता को भेजा था। 15 सेकंड में केवल 1 मिलान पहचानकर्ता होगा, इसका मतलब है कि केवल एक नौकरी "पूरी तरह से" संसाधित होगी। समान नौकरियों के लिए बनाए गए अन्य पहचानकर्ता उस रेडिस कुंजी (NX विकल्प) के मूल्य को अपडेट नहीं करेंगे, इसलिए अन्य नौकरी के पहचानकर्ता के मूल्य के साथ मेल नहीं खाएंगे mymodel:id:1। इसका मतलब है कि उन्हें रद्द कर दिया जाएगा या पूरी तरह से संसाधित नहीं किया जाएगा क्योंकि वे शर्त को पारित नहीं करेंगे।

0
Majid Alaeinia 2020-09-22 22:44.

कनेक्शन पर सेटनक्स कमांड का उपयोग करने पर विचार करें phpredis
ध्यान दें। यह आदेश --triesपर विकल्प से अलग है php artisan queue:work, और असफल नौकरी को पीछे हटा देता है ।

Related questions

MORE COOL STUFF

जाना दुग्गर: प्यार के बारे में उसने जो कुछ कहा है और 'एक' को खोजने के लिए उसकी 5 साल की अवधि

जाना दुग्गर: प्यार के बारे में उसने जो कुछ कहा है और 'एक' को खोजने के लिए उसकी 5 साल की अवधि

जाना दुग्गर प्यार की तलाश के बारे में खुलकर बात करती रही हैं। यहां वह सब कुछ है जो उसने विषय और शादी के लिए पांच साल की अवधि के बारे में कहा है।

सैम ह्यूगन को ठीक-ठीक पता है कि वह 'आउटलैंडर' सेट से क्या लेंगे - 'जब मैं उन्हें पहनता हूं तो मुझे ऐसा लगता है जैसे मैं जेमी हूं'

सैम ह्यूगन को ठीक-ठीक पता है कि वह 'आउटलैंडर' सेट से क्या लेंगे - 'जब मैं उन्हें पहनता हूं तो मुझे ऐसा लगता है जैसे मैं जेमी हूं'

'आउटलैंडर' स्टार सैम ह्यूगन ने हाल ही में खुलासा किया कि वह सेट से जेमी फ्रेजर को याद करने के लिए क्या लेंगे, जिस भूमिका ने उन्हें स्टार बनाया था।

फैब फोर इनसाइडर के अनुसार, शुरुआती बीटल्स गाना बैंड के 'सबसे रोमांचक प्रदर्शनों' में से एक था।

फैब फोर इनसाइडर के अनुसार, शुरुआती बीटल्स गाना बैंड के 'सबसे रोमांचक प्रदर्शनों' में से एक था।

'शी लव्स यू' एक घंटे में लिखा गया, एक दिन में रिकॉर्ड किया गया और यह द बीटल्स का उनके करियर का सर्वश्रेष्ठ प्रदर्शन वाला गाना था।

डॉली पार्टन ने अपनी 'अमान्य' दादी की मदद की, जब अन्य पोते-पोतियों में से कोई भी ऐसा नहीं करता था—वह उसके साथ मज़ाक भी करती थी

डॉली पार्टन ने अपनी 'अमान्य' दादी की मदद की, जब अन्य पोते-पोतियों में से कोई भी ऐसा नहीं करता था—वह उसके साथ मज़ाक भी करती थी

डॉली पार्टन और उनकी दादी बेसी के बीच एक विशेष रिश्ता था। दादी पार्टन बहुत बीमार थीं, लेकिन उसने डॉली को उनके साथ मज़ाक करने से नहीं रोका।

विश्व की सबसे कठोर लकड़ी कौन सी है?

विश्व की सबसे कठोर लकड़ी कौन सी है?

आप सोच सकते हैं कि ओक या हिकॉरी कठोर होती है, लेकिन जब दुनिया की सबसे कठोर लकड़ी की बात आती है, तो वे उसके आसपास भी नहीं फटकतीं।

समुद्र की गहराई में छिपे 10 सबसे डरावने समुद्री जीव

समुद्र की गहराई में छिपे 10 सबसे डरावने समुद्री जीव

समुद्र खूबसूरती से भरपूर है, लेकिन इसमें धरती के कुछ सबसे डरावने समुद्री जीव भी छिपे हैं। इनमें से कई जीव समुद्र की सतह से बहुत नीचे, गहरे समुद्र की अंधेरी, उच्च दबाव वाली दुनिया में छिपे रहते हैं।

Minecraft में 10 सर्वश्रेष्ठ तलवार जादू

Minecraft में 10 सर्वश्रेष्ठ तलवार जादू

अगर आप दुश्मन भीड़ से लड़ रहे हैं या PvP परिदृश्यों के लिए तैयारी कर रहे हैं, तो Minecraft में उपलब्ध सर्वोत्तम तलवारों के जादू को जानना आपको एक बड़ी बढ़त दिला सकता है। तलवारों पर जादू करने से आप ज़्यादा नुकसान पहुँचा सकते हैं, भीड़ पर पड़ने वाले प्रभाव को बढ़ा सकते हैं और अपनी तलवार की टिकाऊपन बढ़ा सकते हैं।

13 समाजवादी देश जो एक-दूसरे से बिल्कुल अलग दिखते हैं

13 समाजवादी देश जो एक-दूसरे से बिल्कुल अलग दिखते हैं

जब लोग समाजवादी देशों की बात करते हैं, तो अक्सर उनकी कल्पना पूर्ण सरकारी नियंत्रण और निजी स्वामित्व के अभाव की होती है। लेकिन व्यवहार में, समाजवादी अर्थव्यवस्थाएँ व्यापक रूप से भिन्न होती हैं।

द बियर रिकैप: क्या मार्कस शिकागो का सबसे दयालु, सबसे कोमल, सबसे ईमानदार आदमी है?

द बियर रिकैप: क्या मार्कस शिकागो का सबसे दयालु, सबसे कोमल, सबसे ईमानदार आदमी है?

'चिल्ड्रन' में एक बड़े नाम की कैमियो और कुछ विनाशकारी खबरें सामने आईं

क्या आप 9,800 डॉलर में इस सात-सीटर 2008 टोयोटा RAV4 में इसे पैक करेंगे?

क्या आप 9,800 डॉलर में इस सात-सीटर 2008 टोयोटा RAV4 में इसे पैक करेंगे?

दावा किया जाता है कि यह RAV4 उत्कृष्ट स्थिति में है और म्यूजिकल चेयर के खेल के लिए तैयार है।

ह्यूस्टन की गर्मी के दौरान अमेज़न डिलीवरी वैन में भीषण विस्फोट

ह्यूस्टन की गर्मी के दौरान अमेज़न डिलीवरी वैन में भीषण विस्फोट

ड्रोन फुटेज में अग्निशमन कर्मियों को आग बुझाने के लिए संघर्ष करते हुए देखा गया।

मार्वल का ब्लैक पैंथर शो अब तक का सबसे महत्वपूर्ण एनिमेटेड शो होगा

मार्वल का ब्लैक पैंथर शो अब तक का सबसे महत्वपूर्ण एनिमेटेड शो होगा

आइज़ ऑफ वकांडा सीधे तौर पर MCU से जुड़ा हुआ है, साथ ही इसमें एक्स-मेन '97, व्हाट इफ..., डेयरडेविल, आदि पर अपडेट भी शामिल हैं।

जॉन क्लीज़ की पत्नी कौन हैं? जेनिफर वेड के बारे में सब कुछ जानें

जॉन क्लीज़ की पत्नी कौन हैं? जेनिफर वेड के बारे में सब कुछ जानें

जॉन क्लीज़ ने 2012 में अपनी पत्नी जेनिफर वेड से विवाह किया। जॉन क्लीज़ की पत्नी जेनिफर वेड के बारे में जानने योग्य सब कुछ यहां है।

पैटन ओसवाल्ट की पत्नी कौन है? मेरेडिथ सेलेन्गर के बारे में सब कुछ

पैटन ओसवाल्ट की पत्नी कौन है? मेरेडिथ सेलेन्गर के बारे में सब कुछ

पैटन ओसवाल्ट ने 2017 में अपनी पत्नी, साथी अभिनेत्री मेरेडिथ सालेंगर से शादी की। यहां पैटन ओसवाल्ट की पत्नी मेरेडिथ सालेंगर के बारे में जानने योग्य सब कुछ है।

माइकल सी. हॉल की पत्नी कौन है? मॉर्गन मैकग्रेगर के बारे में सब कुछ

माइकल सी. हॉल की पत्नी कौन है? मॉर्गन मैकग्रेगर के बारे में सब कुछ

माइकल सी. हॉल की शादी 2016 से उनकी पत्नी मॉर्गन मैकग्रेगर से हुई है। माइकल सी. हॉल की पत्नी के बारे में जानने के लिए यहां सब कुछ है।

जॉन ओलिवर की पत्नी कौन है? केट नोर्ले के बारे में सब कुछ

जॉन ओलिवर की पत्नी कौन है? केट नोर्ले के बारे में सब कुछ

जॉन ओलिवर और उनकी पत्नी केट नोर्ले की शादी 2011 से हुई है। जॉन ओलिवर की पत्नी के बारे में जानने के लिए यहां सब कुछ है।

सर्वनाम सुपर डरावने हैं

यह मुझ पर अचानक प्रहार करता है जैसा कि यह अक्सर करता है यह फिर से बीच का रास्ता है <नहीं, वह नहीं जो प्रशांत में आप मैरून हैं, जो कार्निवल में है> हर हेडलाइन जोर से… ..

अपने लेखन कौशल में सुधार करने के 3 सिद्ध तरीके

ऐसा करने में आपकी मदद करने के लिए लेखन के लाभ, और रणनीतियाँ

अपने लेखन कौशल में सुधार करने के 3 सिद्ध तरीके

2022 में, GPT-3 के जारी होने के साथ, लेखन कौशल कम महत्वपूर्ण होता जा रहा है। एआई के साथ, खराब लेखन वाले लोग भी गुणवत्तापूर्ण कर्मचारी तैयार कर सकते हैं।

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

द स्लो इरोसियन: अनवीलिंग द वे तरीके पीपल वेस्ट अवे अवे करियर

आज की तेज-तर्रार और प्रतिस्पर्धी दुनिया में, किसी का करियर व्यक्तिगत विकास, वित्तीय स्थिरता और समग्र जीवन संतुष्टि में महत्वपूर्ण भूमिका निभाता है। हालांकि, कई लोग खुद को ठहराव और असंतोष के एक अथक चक्र में फंसा हुआ पाते हैं, धीरे-धीरे अपने पेशेवर जीवन को बर्बाद कर रहे हैं।

क्या एक पॉडकास्ट प्रभावशाली बनाता है?

क्या एक पॉडकास्ट प्रभावशाली बनाता है?

पिछले हफ्ते मैंने एक प्रेस विज्ञप्ति देखी, जिसे PressGazette (एक ब्रिटिश मीडिया समाचार वेबसाइट) के माध्यम से भेजा गया था। लेख ने घोषणा की कि एकास्ट, स्कैंडी पॉडकास्ट होस्टिंग और विज्ञापन कंपनी, पॉडकास्टिंग में "शायद सबसे प्रभावशाली" प्रकाशकों के एक संघ का नेतृत्व करेगी।

Language