क्या WAMP में pcntl_fork काम करने का कोई तरीका है? मुझे एक फोर्किंग समाधान विकसित करने और इसे स्थानीय रूप से परीक्षण करने की आवश्यकता है।WAMP और pcntl_fork
उत्तर
नहीं, यह संभव नहीं है। PCNTL एक्सटेंशन के लिए * निक्स प्लेटफॉर्म की आवश्यकता है।
अब, इसके साथ, आप क्या करने की कोशिश कर रहे हैं, और क्या आप इसे बिना फिक्र किए हल कर सकते हैं ...?
संपादित करें: पृष्ठभूमि प्रक्रियाओं को शुरू करने के लिए कुछ विकल्प:
यूनिक्स/लिनक्स:
exec('nohup php yourscript.php > /dev/null 2>&1 &');
विंडोज;
$com = new Com('WScript.shell'); $com->run('php yourscript.php', 10, false);
तर्क पर दस्तावेज़ीकरण के लिए, देखें: http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx
मुझे समवर्ती प्रक्रियाओं को चलाने की आवश्यकता है। मैं cron (और चल रही प्रक्रियाओं की संख्या का प्रबंधन करने के लिए डीबी का उपयोग कर लागू कर सकते हैं) का उपयोग कर कार्यान्वित कर सकते हैं। हालांकि, मैं कहता हूं कि मैं 10 समवर्ती प्रक्रियाओं को चलाना चाहता हूं, मुझे 10 मिनट की एक विशेष स्क्रिप्ट को कॉल करने के लिए क्रॉन की आवश्यकता होगी - 1 मिनट की वृद्धि में - सभी 10 स्क्रिप्ट चलने के लिए (अर्थात्, यह 10 मिनट पहले पूरा होगा मुझे समवर्ती स्क्रिप्ट की वांछित संख्या मिलती है)। वैकल्पिक रूप से, मेरे पास "डमी" फ़ंक्शंस एक ही स्क्रिप्ट को कॉल कर सकते हैं (उदा। Foo_1 कॉल foo, foo_2 कॉल foo, आदि) और क्रॉन कॉल foo_1, foo_2, आदि हर मिनट है। Kludgy लगता है। – StackOverflowNewbie
@Stack: ठीक है, पृष्ठभूमि कार्यों को लॉन्च करने के एक से अधिक तरीके हैं। आप प्रक्रियाओं को डिस्कनेक्ट करने के लिए लिनक्स पर 'नोहुप' और '&' का उपयोग कर सकते हैं, या एक COM WScript: http://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.85).aspx ऑब्जेक्ट पृष्ठभूमि कार्यों को लॉन्च करें ... – ircmaxell
@ स्टैक: उत्तर – ircmaxell
छद्म कोड समाधान:
while (TRUE)
{
$process_limit = get_process_limit();
$process_count = get_process_count();
if process count < process limit:
{
// get_row returns a row (as an array) from the DB that needs to be processed
$row = get_row();
if($row === array())
{
// Nothing to process; sleep
sleep(2);
}
else
{
// Process row
process_count(+1);
process_row($row);
process_count(-1);
}
}
elseif process count === process limit
{
// Do not add to the process
exit;
}
elseif process count > process limit
{
// Means the process limit was decreased
// Terminate this process instance
process_count(-1);
exit;
}
}
यह पहले से ही उत्तर दिया गया है, लेकिन मैं मैं अपने 2p जोड़ना होगा सोचा ।
आप साइगविन का उपयोग कर विंडोज़ में php के साथ pcntl-fork हो सकते हैं।
यह स्थापित करने के लिए एक वास्तविक दर्द है, लेकिन अगर मुझे पसंद है तो आप सिर्फ एक php cli स्क्रिप्ट चलाने के लिए चाहते हैं, यह आपकी सबसे अच्छी शर्त है।
मैं here से निर्देश मिला:
- 1. pcntl_fork और MySQL कनेक्शन
- 2. WAMP
- 3. WAMP
- 4. WAMP
- 5. Wamp
- 6. पीएचपी - हत्या बच्चे प्रक्रिया pcntl_fork
- 7. WAMP .htaccess
- 8. WAMP सर्वर
- 9. एचटीएमएल WAMP
- 10. PHP में pcntl_fork कैसे काम करता है?
- 11. स्थानीय होस्ट WAMP निषिद्ध
- 12. PHP <? WAMP
- 13. WAMP कर्ल स्थापना
- 14. पोर्टेबल WAMP पैकेज?
- 15. त्रुटि 403 WAMP सर्वर
- 16. WAMP सर्वर में shell_exec() सक्षम
- 17. WAMP बनाम व्यक्तिगत रूप से PHP, अपाचे, और MySQL
- 18. स्थानीय नेटवर्क पर उपलब्ध WAMP www
- 19. WAMP स्थापित करने के बाद, PHP
- 20. WAMP: ब्राउज़र में चेतावनी संदेश कैसे दिखाएं?
- 21. WAMP सर्वर एक खाली पृष्ठ दिखाता है
- 22. हरे रंग में WAMP सर्वर, लेकिन केवल 404
- 23. WAMP सर्वर में .htaccess का उपयोग कैसे करें?
- 24. PHP: WAMP (स्टार्टअप पर) का उपयोग कर आंतरिक सर्वर त्रुटि
- 25. WAMP सर्वर डेटाबेस फ़ाइलों को संग्रहीत करता है
- 26. WAMP से MySQL डेटाबेस को पुनर्स्थापित कैसे करें?
- 27. WAMP www निर्देशिका में Windows शॉर्टकट का उपयोग कैसे करें?
- 28. WAMP सर्वर। MySQL में बहुत बड़ी डेटा निर्देशिका?
- 29. फ़ाइल मौजूद नहीं है c: /wamp/www/favicon.ico apache error_log
- 30. प्रोग्रामिंग रूप से WAMP या अपाचे को पुनरारंभ कैसे करें?
आप चलाने/Cygwin, जहां pcntl अधिक कार्य करने की संभावना है के तहत यह संकलन करने की कोशिश कर सकते। अन्यथा यदि आप हिम्मत करते हैं तो आप w32api एक्सटेंशन के माध्यम से कुछ हस्तशिल्प कर सकते हैं (और यदि यह अभी भी उपलब्ध है)। – mario