2010-08-23 11 views
6

जो मैं देख सकता हूं उससे गियरमैन निर्धारित नौकरियों या देरी की नौकरियों का समर्थन नहीं करता है। मैं सोच रहा था कि शायद निर्धारित पद at में कतारबद्ध किया जा सकता है और फिर at की अवधि समाप्त होने के बाद गियरमैन कतार में जोड़ा जा सकता है।किसी विशिष्ट दिनांक और समय के लिए गियरमैन में नौकरी निर्धारित करें

at कार्य लगातार कर रहे हैं के रूप में वे सर्वर स्पूल निर्देशिका में एक निर्देशिका करने के लिए फ़ाइलों के रूप में लिखा जाता है। तो गियरमैन कतार में कार्य जोड़ने के लिए एकमात्र बोतल गर्दन संभावित रूप से एक साधारण स्क्रिप्ट होगी क्योंकि at सर्वरों में वितरित नहीं किया जा सकता है। वास्तविक काम पर कार्रवाई करने के Gearman करने के लिए इसे पासिंग का मतलब है मैं प्रवेश करने आदि उचित काम मिल सकता है

इस सबसे अच्छा तरीका यह दृष्टिकोण और आप किसी भी वैकल्पिक विचार क्या है है?

कारण मैं अन्य कतार समाधान से अधिक Gearman का विकल्प चुना है यह एक PHP एक्सटेंशन वाले है।

कोड मैं लिख रहा हूँ ईमेल की जरूरत है कि एक कतार बनाए रखने के लिए प्रयोग किया जाता है बाहर भेजे जाने के लिए। तो मैं निर्दिष्ट कर सकता हूं कि उदाहरण के लिए शुक्रवार को मैं 9.50 बजे [email protected] पर एक ईमेल भेजना चाहता हूं।

+6

इसका कारण यह है हमें जर्मन, हम अपना काम सीधे * * करना है। हमें कोई शेड्यूलिंग की आवश्यकता नहीं है। –

+1

बहुत मजाकिया! ऐसा लगता है कि सभी गियरमैन प्रश्न इस तरह से परेशान हैं। – Treffynnon

+2

@Treffynnon हाँ, वे इसे आमंत्रित करते हैं .... उन्हें अक्सर सही तरीके से रखा जाता है ("एक गियरमैन कार्यकर्ता को कैसे रोकें", "एक आदेश के साथ गियरमैन श्रमिकों को मार दें" ....) :) –

उत्तर

2

मैं at मार्ग मूल रूप से मेरे सवाल में बाहर रखी के रूप में जाने का फैसला किया। इस उद्देश्य के लिए मैंने at बाइनरी के लिए थोड़ा PHP रैपर लिखा है और इसे उबंटू पर परीक्षण किया है। यदि आप रुचि रखते हैं तो यह github पर पाया जा सकता है: http://github.com/treffynnon/PHP-at-Job-Queue-Wrapper

1

एक बल्कि हैकी समाधान, जो केवल घंटे या दैनिक रिज़ॉल्यूशन पर अच्छी तरह से काम करेगा, नौकरी (फ़ंक्शन) नाम उस तारीख को बनाना होगा जिस पर आप इसे भेजना चाहते थे । फिर श्रमिकों को उन नौकरियों के लिए पंजीकरण करने के लिए हर घंटे या दिन क्रॉन में शुरू करना होता है।

उदाहरण के लिए, यदि आप सोमवार 12 मार्च 2012 को 9एएम पर एक ईमेल भेजना चाहते थे, तो ईमेल_2012-03-12_09: 00 जैसे नाम के साथ कतार में नौकरी जोड़ें। फिर एक क्रॉन नौकरी प्रति घंटा चल रही है, जो एक कार्यकर्ता चलाती है जो ईमेल_ + वर्तमान दिनांक और घंटा से मेल खाने वाली किसी भी नौकरियों के लिए पंजीकरण करती है।

के रूप में मैं कहता हूँ, शायद व्यावहारिक, बल्कि hacky!

अद्यतन 1: मैं हाल ही में देखा कि gearmand database persistence के लिये दस्तावेज अब एक क्षेत्र when_to_run जो एक INT है नामित उल्लेख है, और संभवतः एक यूनिक्स काल टाइमस्टैम्प पकड़ सकता है। इस फ़ील्ड को अभी तक कोड में संदर्भित नहीं किया गया प्रतीत होता है।

0

आप Zend का उपयोग कर रहे हैं, तो ...

SlmQueue एक नौकरी कतार अमूर्त परत है। यह आपको ज़ेंड फ्रेमवर्क 2 एप्लिकेशन में आसानी से जॉब कतार प्रणाली का उपयोग करने की अनुमति देता है। इस प्रकार यह आपको विशेष रूप से एक प्रकार की नौकरी कतार का उपयोग करने के लिए लागू नहीं करता है। आप अंतर्निहित प्रणाली से स्वतंत्र अपने कोड और नौकरियां लिख सकते हैं। यह सिस्टम की बड़ी लचीलापन और decoupling सक्षम बनाता है।

https://github.com/juriansluiman/SlmQueue

संबंधित मुद्दे