2011-04-12 19 views
6

मेरे पास node.js स्क्रिप्ट चलाने के लिए क्रॉन जॉब है।node.js के साथ कॉल झुंड?

यह सुनिश्चित करने के लिए कि मेरी क्रॉन नौकरियां ओवरलैप नहीं हैं, फ़ाइल को लॉक करने के लिए झुंड का उपयोग करना चाहते हैं।

फ़ाइल लॉकिंग करने के लिए कोई अच्छा मॉड्यूल?

या मुझे इसे बाल प्रक्रिया में कॉल करना चाहिए?

या मुझे कोई फ़ाइल लॉकिंग नहीं करनी चाहिए?

क्षमा करें, मैं इसके लिए नया हूं और सुनिश्चित नहीं हूं कि फ़ाइल लॉकिंग async एनवी जैसे नोड के लिए अच्छा है। धन्यवाद

+0

पर अधिक जानकारी मैं सिर्फ एक बच्चे की प्रक्रिया का प्रयोग करेंगे झुंड तो मृत सरल है क्योंकि ... चाहे ताला फ़ाइल के रूप में नहीं है async के लिए अच्छा है वास्तव में, पर निर्भर करता है, क्योंकि यह सबसे बातें, कैसे के लिए करता है आप लागू करते हैं। बस I/O को अवरोधित न करने के लिए सावधान रहें और आपको ठीक होना चाहिए। – srquinn

उत्तर

4

तुम सिर्फ, अतिव्यापी से क्रॉन नौकरियों रखने के बजाय अपने crontab में "झुंड" सुविधा का उपयोग करने पर विचार करने की कोशिश कर रहे हैं।

अपने क्रॉन लाइन कुछ इस तरह दिखाई देता है:

*/10 * * * * /usr/bin/node /usr/local/share/myscript 

तुम सिर्फ इस लिए इसे बदल सकते हैं:

*/10 * * * * /usr/bin/flock -n /var/lock/myscript /usr/bin/node /usr/local/share/myscript 

यह lockfile/var/ताला पर ताला पाने के लिए कोशिश करेंगे/myscript। यदि यह हो सकता है, तो यह शेष पंक्ति पर कमांड चलाएगा और फिर लॉक जारी करेगा; यदि नहीं (क्योंकि एक और नौकरी चल रही है), यह असफल हो जाएगी।

यह आपको 'fs-ext' पर बहुत अधिक निर्भरताओं को जोड़ने से रोकता है और इसी तरह।

http://linux.die.net/man/1/flock

+0

http://mihasya.com/blog/a-quick-note-on-cron-utilities/ (क्रेडिट जहां देय है) से प्रेरणा –

+0

मुझे यह त्रुटि मिल रही है: '/ bin/sh: -c: line 0: अनपेक्षित ईओएफ मिलान '' ' /bin/sh: -c: लाइन 1: वाक्यविन्यास त्रुटि: फ़ाइल का अप्रत्याशित अंत' – chovy

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