stopAll

void Worker::stopAll(void)

वर्तमान प्रक्रिया को रोकें और बाहर निकलें।

ध्यान
Worker::stopAll() का उपयोग वर्तमान प्रक्रिया को रोकने के लिए किया जाता है, वर्तमान प्रक्रिया के बाहर निकलने के बाद मुख्य प्रक्रिया तुरंत एक नई प्रक्रिया शुरू कर देगी। यदि आप पूरे workerman सेवा को रोकना चाहते हैं, तो posix_kill(posix_getppid(), SIGINT) का उपयोग करें।

पैरामीटर

कोई पैरामीटर नहीं

वापसी मान

कोई वापसी नहीं

उदाहरण max_request

नीचे दिए गए उदाहरण में, प्रत्येक उप-प्रक्रिया 1000 अनुरोधों को संसाधित करने के बाद stopAll को बाहर निकालने के लिए कार्यान्वित होती है, ताकि एक नया पूर्ण प्रक्रिया शुरू किया जा सके। यह php-fpm के max_request गुण के समान है, जिसका मुख्य उपयोग php व्यवसाय कोड बग के कारण होने वाले मेमोरी लीक समस्याओं को हल करना है।

start.php

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// प्रत्येक प्रक्रिया में अधिकतम 1000 अनुरोध संसाधित होंगे
define('MAX_REQUEST', 1000);

$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->onMessage = function(TcpConnection $connection, $data)
{
    // अब तक संसाधित अनुरोधों की संख्या
    static $request_count = 0;

    $connection->send('hello http');
    // यदि अनुरोधों की संख्या 1000 तक पहुँच गई
    if(++$request_count >= MAX_REQUEST)
    {
        /*
         * वर्तमान प्रक्रिया को बाहर निकालें, मुख्य प्रक्रिया तुरंत एक नया पूर्ण प्रक्रिया शुरू करेगी
         * जिससे प्रक्रिया का पुनः आरंभ किया जा सके
         */
        Worker::stopAll();
    }
};

Worker::runAll();