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

關(guān)于定時跑數(shù)據(jù)的問題

海盜船長

現(xiàn)在的業(yè)務(wù)場景是: 每10分鐘運行一次,先從mysql讀取url列表,然后訪問這些url,把每個url返回的數(shù)據(jù)存起來。

現(xiàn)在我在用的辦法是crondtab定時,10分鐘運行一次,循環(huán)讀取每個url的數(shù)據(jù),這樣量多的時候就慢了。

我現(xiàn)在想用workerman實現(xiàn)定時,多進程,就是一次讀取多個url,這樣就快很多,但是剛接觸workerman,完全沒有思路。主要是不理解用php多進程處理。

哪位大神能給個思路,或者哪個開源的是類似這樣的。

2029 2 0
2個回答

海盜船長

這個是網(wǎng)上查到的,用swoole實現(xiàn)的,我想要的就是這樣的
這個是把10個url分成5組,每組跑2個
<?php
/**

  • Created by PhpStorm.
  • User: cyw0413
  • Date: 2018/10/20
  • Time: 10:51
    /
    $url_arr = array();
    for ($i=0;$i<10;$i++){
    $url_arr[] = "www.baidu.com?wd=".$i;
    }
    echo "start:".date("Y-m-d H:i:s").PHP_EOL;
    $workers = array();
    for ($i=0;$i<5;$i++){
    $process = new swoole_process('getContents',true);
    $process->start();
    $process->write($i);
    $workers[] = $process;
    }
    //主進程數(shù)據(jù)結(jié)果
    foreach ($workers as $process){
    echo $process->read();
    echo PHP_EOL;
    }
    echo "end:".date("Y-m-d H:i:s").PHP_EOL;
    function getContents(swoole_process $worker){
    $i = $worker->read();
    global $url_arr;
    $res1 = execCurl($url_arr[($i
    2)]);
    $res2 = execCurl($url_arr[($i*2+1)]);
    echo $res1.PHP_EOL.$res2;
    }
    function execCurl($url){
    sleep(2);
    return "handle ".$url." finished";
    }
  • 暫無評論
phpxu

剛好最近準備用workerman想開源個定時任務(wù)系統(tǒng),給你說下思路吧,你可以啟動兩個worker,一個是用來跑定時任務(wù)的,到時間把數(shù)據(jù)取出來。另一個worker是用來執(zhí)行任務(wù),這個你worker子進程count可以開多些,然后定時任務(wù)把數(shù)據(jù)取出來用異步通信把數(shù)據(jù)發(fā)給執(zhí)行任務(wù)的worker

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??