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

crontab 如何調(diào)用控制器方法

sanmao
class Task
{
    public function onWorkerStart()
    {
        new Crontab('1 * * * * *', function(){
            //如何調(diào)用控制器
        });
    }
}
1676 6 0
6個(gè)回答

xiaoshuai

直接把控制器當(dāng)成個(gè)類實(shí)例化試試

為什么要這樣用,那直接把這個(gè)控制器的方法單獨(dú)封裝成一個(gè)類不就好了嗎?

  • 暫無評(píng)論
yzh52521

看下這個(gè)插件
http://m.wtbis.cn/plugin/42

  • 暫無評(píng)論
efnic

為什么要定時(shí)任務(wù)調(diào)用控制器的方法?
可以把公共方法封裝成函數(shù)或者單獨(dú)的類。
代碼分層,面向?qū)ο缶幊獭?/p>

  • 暫無評(píng)論
taozywu

從提的問題來看,大致是想定時(shí)請(qǐng)求某個(gè)url,即控制器-action。

方法有很多,如果非要使用crontab的話,可以參考如下,希望能幫到你!

use GuzzleHttp\Client;

class Task
{
    public function onWorkerStart()
    {

        $client = new Client(['verify' => false]);

        new Crontab('1 * * * * *', function() use ($client){
            $params = array(
                "headers" => array(

                ),
                "form_params" => array(

                ),
            );

            $res = $client->post(
                "http://127.0.0.1:8788/index/index",
                $params
            );
            var_dump($res);
        });
    }
}
taozywu

或者類似如下,應(yīng)該也是可行,僅做參考

use Workerman\Connection\AsyncTcpConnection;

class Task
{
    public function onWorkerStart()
    {

        $task_connection = new AsyncTcpconnection("tcp://127.0.0.1:8788");

        // 每10秒執(zhí)行執(zhí)行一次
        new Crontab('*/10 * * * * *', function () use ($task_connection) {
            $task_connection->send("GET /test/index/sleep2 HTTP/1.1\r\nHOST: 127.0.0.1\r\nConnection: keep-alive\r\n\r\n");
        });

        $task_connection->onMessage = function ($task_connection, $task_result) {
            echo $task_result . "\r\n";
        };

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