
最近遇到一个比较奇怪的问题,在本地搭建了PHP运行环境,并且安装了相应的PHP扩展 并且在测试页面中通过打印phpinfo能看到所安装的扩展是正常的,但是php -m | grep swoole 没有显示swoole 已经配好了php环境变量
装好了php,php一些常用的扩展后就开始配置php系统环境变量,因为我用的mac book pro 所以配置命令如下
查看环境变量是否OK
以为一切OK的我想试试swoole的性能是否真有官网说的那么厉害于是就准备了一段测试脚本 >php扩展swoole实现实时异步任务队列的方案。安装swoole pecl 安装: pecl install swoole 看命令行提示,如果它提示说没有写phpini,则自己手动在PHPini后面加上: extension = "swooleso" 服务端 在打算放置脚本的目录(你也可以自行新建)新建Serverphp,代码如下: “` <php class Server { private $serv; public function __construct() { $this->serv = new swoole_server("0000", 9501); $this->serv->set(array( 'worker_num' => 1, //一般设置为服务器CPU数的1-4倍 'daemonize' => 1, //以守护进程执行 'max_request' => 10000, 'dispatch_mode' => 2, 'task_worker_num' => 8, //task进程的数量 "task_ipc_mode " => 3 , //使用消息队列通信,并设置为争抢模式 //"log_file" => "log/taskqueueulog" ,//日志 )); $this->serv->on('Receive', array($this, 'onReceive')); // bind callback $this->serv->on('Task', array($this, 'onTask')); $this->serv->on('Finish', array($this, 'onFinish')); $this->serv->start(); } public function onReceive( swoole_server $serv, $fd, $from_id, $data ) { //echo "Get Message From Client {$fd}:{$data}n"; // send a task to task worker $serv->task( $data ); } public function onTask($serv,$task_id,$from_id, $data) { $array = json_decode( $data , true ); if ($array['url']) { return $this->>linux随机启动的服务程序都在/etc/initd这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类似windows下的autorundat文件),另外在/etc这个文件夹里还有诸如名为rc1d, rc2d一直到rc6d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6)d文件夹下的文件其实都是/etc/initd文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在 /etc/initd文件夹下是全部的服务程序,而每个rc(1-6)d只链接它自己启动需要的相应的服务程序!
要 启动scim (某一程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表 示是 属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/initd里,然后在rc5d里做一个相 应的软链接就可以了。
这个脚本其实很简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。
还 需要注意的一点是,在rc5d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。
在RH下,rclocal是默认启动的最后一个脚本文件,所以,
如果你想要随机启动,还有一种方法就是在rclocal的尾部加入/usr/bin/scim,这样就可以了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)