不好意思,里面是没有注释的。一个配置文件,一个 py 脚本。基本的功能也就是分析
一下调用的参数,然后调用 PHP Cli,就是那样子而已。要让 py 脚本跑起来请自行安装
python 的 gearman 模块。
然后到 PHP 的部分先上测试代码:
<?php
require_once 'PHPAsyncClient.php';
date_default_timezone_set('Asia/Shanghai');
class AsyncTest {
const
LOG_FILE = '/debug.log';
static public function run() {
if (PHPAsyncClient::in_callback(__FILE__)) {
self::log('php Async callback');
PHPAsyncClient::parse();
return;
}
if (PHPAsyncClient::is_main(__FILE__)) {
self::log('main run');
$async_call=PHPAsyncClient::getInstance();
$async_call->AsyncCall('AsyncTest', 'callback', array(
'content' => 'Hello World!!!',
), array(
'class' => 'AsyncTest',
'method' => 'callback',
'params' => array(
'content' => 'Hello Callback!',
),
), __FILE__);
return;
}
}
static public function callback($args) {
self::log('AsyncTest callback run');
self::log('AsyncTest callback args:'.print_r($args, true)); }
static public function log($content) {
$fullname = dirname(__FILE__).self::LOG_FILE;
$content = date('[Y-m-d H:i:s]').$content."\n";
file_put_contents($fullname, $content, FILE_APPEND); } }
AsyncTest::run();
就 3 个静态方法,一个是用于调试的 log 方法,其他都是字面意思。这个例子是对这
种调用方式有个初步印象。然后直接上 PHP 的所有源码: