2011-03-18 5 views
5

मेरे पास एक ऐप है जो मैं रुबी से जेआरबीई में माइग्रेट कर रहा हूं (जावा के माध्यम से बेहतर वेब सेवा सुरक्षा समर्थन की आवश्यकता के कारण)। बैकग्राउंड जॉब बनाने के लिए मैं उपयोग किए जाने वाले रत्नों में से एक daemons है।रूबी डेमन्स और जेआरबी - वैकल्पिक विकल्प

समस्या यह है कि यह पृष्ठभूमि प्रक्रिया बनाने के लिए फोर्क + exec का उपयोग करता है, लेकिन यह JRuby के साथ नो-नो है।

तो क्या पृष्ठभूमि नौकरियां बनाने के लिए कोई वैकल्पिक मणि/रैपर है?

मेरे वर्तमान विचार बस अग्रिम में एक खोल स्क्रिप्ट से रेक कॉल करने के लिए और रेक कार्य हमेशा के लिए चलाते हैं ...

धन्यवाद, क्रिस कर रहे हैं।

अद्यतन हम वर्तमान में जावा के एक जोड़े का उपयोग कर रहे संबंधित रैपर, अर्थात् https://github.com/jmettraux/rufus-scheduler और https://github.com/philostler/acts_as_executor

उत्तर

3

चूंकि आप जेआरबी में फोर्क नहीं कर सकते हैं, इसलिए आप मूल रूप से अपने डेमॉन कोड को दोबारा करने के लिए छोड़ दिए जाते हैं ताकि डिमन को मानक अग्रभूमि एप्लिकेशन के रूप में निष्पादित किया जा सके और फिर एक अलग डिमन लॉन्चर बनाएं जो डिमन को चलाएगा और पृष्ठभूमि करेगा। आप spoon देख सकते हैं और यह gist भी देख सकते हैं जो एक विस्तृत लॉन्चर बनाने के लिए चम्मच का उपयोग करता है। jruby-jsvc एक जेआरबीई डिमन के साथ jsvc का उपयोग करने के लिए गोंद प्रदान करता है।

+0

धन्यवाद - वे दिलचस्प लग रहे हैं। –

+0

मैंने चम्मच के साथ कुछ करने की कोशिश की, लेकिन अंत में यह रूबी (गति के लिए) के ऊपरी हिस्से के लायक नहीं था, मैंने अभी एक बैश स्क्रिप्ट का उपयोग किया था और ऐसा लगता है कि यह अब तक अच्छी तरह से काम कर रहा है। – mrbrdo

3

सूत्रण आप http://torquebox.org/ में यह समय निर्धारण भी शामिल है रुचि हो सकती है।

+0

चालाक - मैं इसके बारे में भूल गया था। धन्यवाद। –

2

मैंने रुबी & जेआरबी डिमन्स के आसान निर्माण के लिए एक मणि बनाया: raad (रूबी एक डेमॉन के रूप में)। यह एमआरआई रूबी या जेआरबी, सरल, हल्के, पारदर्शी के साथ समान रूप से काम करता है।