swoft php 协程 性能优化

发布时间 2023-04-03 18:03:26作者: xyz叶子

 

 

https://dy.163.com/article/E14KTSAC0511HSJK.html 原文章地址,传送门

因为看到韩天峰大佬的这个,协程那简直不要太酸爽。所以我也尝试一下。

服务器环境lnmp+swoole linux(centos7.4),(nginx1.14),(php7.2)

框架选用swoft2.0.9 这就走起来。

1
2
3
4
5
6
7
8
9
10
11
use Swoft\Task\Task;
 
/**
 * 测试协程任务
*/
    public function RedisGoodsList( $page$brand_id$tags ){
 
        $res = Task::co('GoodsTask''TestCoTask', [1,2,3], 3, []);
 
        return $res;
    }

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php declare(strict_types=1);
/**
 * This file is part of Swoft.
 *
 * @link     https://swoft.org
 * @document https://swoft.org/docs
 * @contact  group@swoft.org
 * @license  https://github.com/swoft-cloud/swoft/blob/master/LICENSE
 */
 
namespace App\Task\Task;
 
use Swoft\Task\Annotation\Mapping\Task;
use Swoft\Task\Annotation\Mapping\TaskMapping;
use Swoft\Db\DB;
use Swoft\Db\Eloquent\Model;
 
/**
 * Class GoodsTask
 *
 * @since 2.0
 *
 * @Task(name="GoodsTask")
 */
class GoodsTask
{
 
    /**
     * @TaskMapping(name="TestCoTask")
     * 批量收藏商品进入购物车
     */
    public function TestCoTask( $a$b$c)
    {
 
        return $a.$b.$c;
    }
 
 
 
}

 

 

 调用协程任务成功。谈不上效果。

 

 

 我们看到task底层中,

 

 都是封装好了的。试管调用就行了。