国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

10個(gè)進(jìn)程,10個(gè)定時(shí)器,如何每個(gè)進(jìn)程運(yùn)行一個(gè)定時(shí)器?

north521

2、添加的定時(shí)任務(wù)在當(dāng)前進(jìn)程執(zhí)行(不會(huì)啟動(dòng)新的進(jìn)程或者線程),如果任務(wù)很重(特別是涉及到網(wǎng)絡(luò)IO的任務(wù)),可能會(huì)導(dǎo)致該進(jìn)程阻塞,暫時(shí)無法處理其它業(yè)務(wù)。所以最好將耗時(shí)的任務(wù)放到單獨(dú)的進(jìn)程運(yùn)行,例如建立一個(gè)/多個(gè)Worker進(jìn)程運(yùn)行

if($worker->id === 0)
    {
        Timer::add(1, function(){
            echo "4個(gè)worker進(jìn)程,只在0號(hào)進(jìn)程設(shè)置定時(shí)器\n";
        });
    }

這個(gè)只對(duì)進(jìn)程id為0有效,比如我有10個(gè)定時(shí)器,開啟10個(gè)進(jìn)程,怎么讓每個(gè)進(jìn)程運(yùn)行一個(gè)定時(shí)器?

4487 3 0
3個(gè)回答

抽不完的寂寞

把if($worker->id === 0) 去掉就是每個(gè)進(jìn)程運(yùn)行一個(gè)定時(shí)器啊

north521

當(dāng)前開了10個(gè)進(jìn)程,已經(jīng)運(yùn)行5個(gè)定時(shí)器,在進(jìn)程0-4運(yùn)行,我從前端onMessage添加的定時(shí)器任務(wù),怎么在進(jìn)程5運(yùn)行?

  • 暫無評(píng)論
north521
<?php
namespace app\push\controller;
use think\worker\Server;
use Workerman\Lib\Timer;
require_once APP_PATH . '/push/controller/Cron.php';
class Worker extends Server
{
    protected $socket = 'text://0.0.0.0:2346';
    //protected $count = 1;
    protected $processes=10;

    public function onWorkerStart($work){
        //讀出符合條件的任務(wù)
        $task = new Task();
        $taskList = $task->getTaskList();
        if ($taskList){
            foreach ($taskList as $value){
                    $this->task($value);
            }
        }
    }

    //執(zhí)行的任務(wù)

    public static function task($data){
        //添加定時(shí)器,返回定時(shí)器的ID
        $cron = new Cron();
        $timer_id = Timer::add(1,array($cron,'execute'),array($data),true);

        //更新任務(wù)定時(shí)器ID
        $task = new Task();
        $task->updateTimer($data,$timer_id);
        return $timer_id;
    }

    /**
     * 監(jiān)聽接收數(shù)據(jù)
     * @param $connection
     * @param $data
     */
    public function onMessage($connection, $data)
    {
        $data = trim($data);
        $data = json_decode($data,true);
        //任務(wù)ID
        $taskId = $data;
        //請(qǐng)求類型
        $type = $data;
        switch ($type){
            case 'add':
                //添加定時(shí)器
                $task = new Task();
                $list = $task->getTaskById($taskId);
                $timer_id = $this->task($list);
                //發(fā)送數(shù)據(jù)
                $data = array('code'=>1,'msg'=>'添加定時(shí)器成功');
                break;
            case 'stop':
                //刪除定時(shí)器
                $timer_id = $data;//定時(shí)器ID
                //刪除定時(shí)器
                $res = Timer::del($timer_id);
                if ($res){
                    //刪除任務(wù)
                    $task = new Task();
                    $task->delTask($taskId);
                    $data = array('code'=>1, 'msg'=>'刪除定時(shí)器成功');
                }else {
                    $data = array('code'=>0, 'msg'=>'刪除定時(shí)器失敗');
                }
                break;
            default:
                $data = array('code'=>505, 'msg'=>'非法請(qǐng)求');
                break;
        }

        //$data = array('code'=>1, 'msg'=>'刪除定時(shí)器成功');
        return $connection->close(json_encode($data));

    }

    public static function onWorkerStop(){
        //清空定時(shí)任務(wù)
        $task  = new Task();
        $task->clearTimer();
    }

    public static function onError($connection, $code, $msg){
        return $msg;
    }
}

[attach]1275[/attach]

file:///C:\Users\zhang\AppData\Roaming\Tencent\Users\171051823\QQ\WinTemp\RichOle\3(%L9K6)8Z$H_ZUKW7WJ[7D.png

file:///C:\Users\zhang\AppData\Roaming\Tencent\Users\171051823\QQ\WinTemp\RichOle\3(%L9K6)8Z$H_ZUKW7WJ[7D.png
當(dāng)瀏覽器調(diào)用onMessage時(shí),并不會(huì)在新的進(jìn)程運(yùn)行,怎么樣能在新的進(jìn)程運(yùn)行?

?

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??