专栏首页陶士涵的菜地[PHP] swoole直接使用二进制包

[PHP] swoole直接使用二进制包

swoole提供一个编译好的二进制包,这个包连php都包含进去了,下载解压后就可以直接运行,都不用安装php

在这个地方直接下载二进制包

https://www.swoole.com/page/download

下载完按照官方建议解压缩到/opt/swoole tar -xvf swoole.tar.xz -C /opt/swoole

直接写一个php文件使用swoole目录里的php进行运行

<?php
$serv = new Swoole\Server("127.0.0.1", 9502, SWOOLE_BASE);
 
$serv->set(array(
    'worker_num' => 2,
    'task_worker_num' => 4,
));
 
$serv->on('Receive', function(Swoole\Server $serv, $fd, $from_id, $data) {
    echo "接收数据" . $data . "\n";
    $data = trim($data);
    $task_id = $serv->task($data, 0);
    $serv->send($fd, "分发任务,任务id为$task_id\n");
});
 
$serv->on('Task', function (Swoole\Server $serv, $task_id, $from_id, $data) {
    echo "Tasker进程接收到数据";
    echo "#{$serv->worker_id}\tonTask: [PID={$serv->worker_pid}]: task_id=$task_id, data_len=".strlen($data).".".PHP_EOL;
    $serv->finish($data);
});
 
$serv->on('Finish', function (Swoole\Server $serv, $task_id, $data) {
    echo "Task#$task_id finished, data_len=".strlen($data).PHP_EOL;
});
 
$serv->on('workerStart', function($serv, $worker_id) {
    global $argv;
    if($worker_id >= $serv->setting['worker_num']) {
        swoole_set_process_name("php {$argv[0]}: task_worker");
    } else {
        swoole_set_process_name("php {$argv[0]}: worker");
    }
});
 
$serv->start();

/opt/swoole/bin/php /mnt/f/ubuntu/phpProject/myworker/task.php

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [PHP] 编译安装swoole

    不知道为啥,家里的网访问不了pecl.php.net,这也就没有办法直接使用pecl install swoole安装swoole,也可以直接进行编译安装

    陶士涵
  • [GO-FLY] GO-FLY客服实现浏览器消息提示音

    陶士涵
  • [Go] 使用字面值方式初始化map

    当在go里面使用map的时候 , 一般我们是先声明然后再make一下 , 然后赋值

    陶士涵
  • Enterprise Library Policy Injection Application Block 之二: PIAB设计和实现原理

    在前面一篇文章中,我对Enterprise Library中的PIAB (Policy Injection Application Block)作了简单的介绍。...

    蒋金楠
  • Android重力感应示例

    以屏幕的左下方为原点,箭头指向的方向为正。从-10到10,以浮点数为等级单位,想象以下情形:

    阳光岛主
  • 一次完整的WordPress静态资源同步存储至腾讯云COS插件应用

    WPCOS插件地址:https://www.laobuluo.com/2186.html

    老蒋
  • 来聊聊双目视觉的基础知识(视察深度、标定、立体匹配)

    人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现,双目视觉就是通过两个摄像头获得图像信息,计算出...

    AI算法修炼营
  • linux shll:sudo的相关使用

    判断当前是否有sudo权限可以用sudo -v返回0为sudo user,否则不是。 使用示例:

    用户1148648
  • 面向容器技术资源调度关键技术对比

    摘要:本文以资源分配理念:拍卖、预算、抢占出发,引出Borg、Omega、Mesos、Kubernetes架构、数据、API的特点比较。然后梳理资源共享各种不同...

    小小科
  • Research on Batch Normalization

    摘要:本文主要针对Batch Normalization技术,探究其对神经网络的作用,总结BN能够加速神经网络训练的原因,并对Internal covariat...

    不高不富不帅的陈政_

扫码关注云+社区

领取腾讯云代金券