task

通过加载器加载并返回一个task的代理。

函数原型

    /**
     * 获取一个task
     * @param $task
     * @return mixed|null|TaskProxy
     * @throws SwooleException
     */
    public function task($task)

其中$task是Task的类名,根据SD的传统该类优先在app/Tasks中寻找,如果不存在则在Server/Tasks中寻找。

例子:

    public function test_task()
    {
        $testTask = $this->loader->task('TestTask');
        $testTask->test();
        $testTask->startTask(null);
    }

需要注意$this->loader->task('TestTask')返回的并不是TestTask的实例,其实返回的是一个TaskProxy,这个TaskProxy是个单例模式,所以调用task的时候不要对TaskProxy缓存,随时用随时获取。

TestTask有个test方法,虽然说$testTask是个TaskProxy,但你可以把他当做是TestTask调用方法。

TaskProxy和Task的更加深入的用法见具体章节。

results matching ""

    No results matching ""