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();