異步任務投遞,是將當前進程任務投遞到task進程進行處理,投遞結束直接返回,不對當前進程造成阻塞。方便處理耗時任務。
```php
//閉包方式投遞
Task::async(function ($serv, $task_id, $data)use($post) {
$i = 0;
while ($i < 10) {
$i++;
echo $i;
//var_dump($post);
sleep(1);
}
});
//投遞任務模板
$task=new \app\lib\Task($post,1);
Task::async($task);
```
模板需要繼承Task接口類
如下
```php
<?php
/**
* Created by PhpStorm.
* User: xavier
* Date: 2018/8/15
* Time: 上午11:31
*/
namespace app\lib;
use xavier\swoole\Component\Task as TaskC;
class Task extends TaskC
{
public function _initialize(...$arg)
{
// TODO: Implement _initialize() method.
}
public function run($serv, $task_id, $fromWorkerId)
{
$i=0;
while($i<10){
sleep(1);
$i++;
}
}
}
```