2011-11-21 13 views
11

मैं PHP 5.3.8 के साथ उबंटू नट्टी का उपयोग कर रहा हूं। मुझे अभी गियरमैन मेरे सर्वर पर काम कर रहा है।पृष्ठभूमि में गियरमैन श्रमिकों को चलाने

मैंने PHP मैनुअल से प्राप्त कुछ स्क्रिप्ट के साथ कुछ परीक्षण किए, और सबकुछ ठीक काम करता है।

हालांकि, मैं जानना चाहता हूं कि पृष्ठभूमि में कार्यकर्ता को चलाने का कोई तरीका है या नहीं, और इसकी निगरानी भी करें ताकि जब मैं बहु-कार्यकर्ता की स्थिति में जाऊं, तो मैं केवल कितने श्रमिकों का ट्रैक रख सकता हूं मुझे काम मिल गया है

आमतौर पर, मुझे दो टर्मिनल खोलना होगा, एक कर्मचारी के लिए और एक ग्राहक के लिए। PHP स्क्रिप्ट निष्पादित होने के बाद कार्यकर्ता के लिए एक प्रभाव में 'अटक गया' बन जाता है।

अग्रिम धन्यवाद।

उत्तर

19

ठीक से GearmanManager उपयोग कर सकते हैं। मुझे अपनी पिछली समस्या का समाधान मिला। इसमें गियरमैन कार्यकर्ताओं को अपमानित करने के लिए पर्यवेक्षक का उपयोग करना शामिल है।

chmod +x /etc/init.d/supervisord 
update-rc.d -f supervisord defaults 

फिर आप:

यहाँ स्थापित करने के लिए कैसे Supervisord

apt-get install python-setuptools 
easy_install supervisor 
echo_supervisord_conf > /etc/supervisord.conf 

यहाँ यह कॉन्फ़िगर करने के तरीके (प्रथम here से एक init स्क्रिप्ट हो और /etc/init.d/supervisord करने के लिए इसे बचाने के लिए) है, तो निम्न कार्य है पर्यवेक्षक को बताने के लिए अपनी पर्यवेक्षक.conf फ़ाइल को अद्यतन करने की आवश्यकता है, जिसे आप एक डिमन के रूप में चलाने के लिए चाहते हैं (बेशक, यह आपका गियरमैन कार्यकर्ता होगा)। नीचे आप अपने supervisord.conf फ़ाइल में जो जोड़ना चाहते हैं उसका एक नमूना है, आपको इसे अपनी विशिष्ट स्थिति में अपडेट करना होगा।

[program:gearman] 
command=/usr/bin/php php_gearman_worker.php 
numprocs=1 
directory=/root/gearman 
stdout_logfile=/root/gearman/supervisord.log 
environment=GEARMAN_USER=gearman 
autostart=true 
autorestart=true 
user=gearman 
stopsignal=KILL 

जब आप कर रहे हैं, तो supervisord अर्थात /etc/init.d/supervisord start शुरू करते हैं।

एक बार ऐसा करने के बाद, आपका गियरमैन कार्यकर्ता अब सक्रिय है और अब आप कमांड लाइन या अपने ब्राउज़र के माध्यम से अपने गियरमैन क्लाइंट को चला सकते हैं।

मुझे आशा है कि इस मदद करता है।

+2

'apt-install इंस्टॉल पर्यवेक्षक 'प्राप्त करें और'/etc/supervisor/conf.d/gearman.conf' को केवल' [प्रोग्राम: gearman] 'और' command =/usr/bin/php php_gearman_worker.php' वह सब मेरे लिए जरूरी था। –

5

पृष्ठभूमि श्रमिकों के लिए आप ब्रायन चंद्रमा https://github.com/brianlmoon/GearmanManager

+0

धन्यवाद एक बहुत है, लेकिन मैं Supervisord का उपयोग कर एक और अधिक व्यावहारिक रास्ता मिल गया। –

+0

गियरमैन मॉनीटर और गियरमैन मैनेजर को एक साथ चाल करना चाहिए। https://github.com/yugene/Gearman- मॉनिटर – rjha94

5

एक अन्य विकल्प एक अलग खोल में कार्यकर्ता काम डाल करने के लिए screen उपयोग करने के लिए है:

screen -d -m php worker.php 
+0

बहुत धन्यवाद। – pregmatch

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