Home  >  Article  >  Backend Development  >  php--swoole simple timer use

php--swoole simple timer use

不言
不言Original
2018-04-26 09:51:361773browse

这篇文章主要介绍了关于php--swoole之简单定时器使用 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下


创建文件 Sw.php

<?php 
/**
* 单例操作数据库 写入
*/
class Sw
{
    private $_db = null;
    private static $_instance;  
    //静态配置可拉出  设置成静态文件  或者常量
    public function __construct(){
        $this->_db =  mysql_connect(&#39;192.168.2.130&#39;, &#39;root&#39;, &#39;123456&#39;);//26上面数据库配置
    }
	public static function getInstance()    {    
        if(! (self::$_instance instanceof self) ) {    
            self::$_instance = new self();    
        }    
        return self::$_instance;    
    }    
  //下列函数用于调整对象的克隆行为
   private function __clone() {}
    public function insert_one(){
    	if(!mysql_select_db(&#39;sakila&#39;)){
            return false;
        }
        $time = time();
    	$sql = "INSERT INTO sw_db (add_time) VALUES (".$time.")"; 
        $result = mysql_query($sql,$this->_db);
    }
}

创建文件 Timer.php

 <?php
date_default_timezone_set(&#39;Asia/Shanghai&#39;);
/**
* swoole 定时器类
*/
require_once &#39;Sw.php&#39;;
class Timer
{
	private static $_sw = null;
	public function __construct() {
		if(!isset($this->_sw)){
			$this->_sw =  new swoole_server(&#39;192.168.2.130&#39;, 9501);
		}
	}
	public function run(){
        $this->_sw->on(&#39;WorkerStart&#39;, array($this, &#39;onStart&#39;));
        $this->_sw->on(&#39;Receive&#39;, array($this, &#39;onReceive&#39;));
        $this->_sw->start();
	}
	public function onStart(swoole_server $_sw){
	    $_sw->tick(1000, function ($id) {
	    	$this->upsert();	
       	});
	}
	private function upsert(){
		$db_sw = Sw::getInstance();
		$db_sw->insert_one();
	}
	public function onReceive(swoole_server $_sw){
		echo &#39;1&#39;;
	}
}


$timer = new Timer();
$timer->run();



执行方式: 放入你的linux系统中

我的存放目录是根目录下:ydy/swoole


编辑shell文件,创建fsw.sh

 #!/bin/sh
pid=`ps -ef | grep &#39;/ydy/swoole/Timer.php&#39; | grep -v grep |awk &#39;{print $2}&#39;`
if [ "${pid}" = "" ]
	then
	php /ydy/swoole/Timer.php &
fi

并结合linux crontab监听脚本。

以上就是简易的php和swoole没秒写入数据库例子。

相关推荐:

如何用swoole与websocket开发一个聊天室

php加swoole加mysql 仿webqq及时聊天

利用php +swoole如何实现异步任务队列

The above is the detailed content of php--swoole simple timer use. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn