You've already forked qlg.tsgz.moe
addons
app_download_files
extend
hyhproject
mobile
oss
static
thinkphp
upload
vendor
5ini99
composer
oss-sdk
swoole
.github
benchmark
examples
async
atomic
channel
client
coroutine
eof
event
http
http2
ipv6
length
lock
memory
mmap
multicast
mysql
namespace
php
postgresql
process
redis
runtime
server
socket_coro
ssl
table
task
http.php
msg_push.php
shared_client.php
shared_server.php
task.php
task_coro.php
task_num.php
task_queue.php
task_stream.php
timer
udp
unixsock
websocket
buffer.php
c10k.php
channel.php
client2.php
db_pool.php
get_local_ip.php
hot_update_class.php
multi_port_server.php
mysql_proxy_server.php
proxy_sync.php
recv_1m_client.php
recv_file.php
redis_pool.php
reflection_test.php
ringqueue.php
send_1m_svr.php
sendfile_server.php
serialize.php
serialize2.php
server.c
server.php
server_hot_update_opcache.php
set_cpu_affinity.php
swoole_http_client.php
test.jpg
test_buffer.php
test_server.c
version.php
weather_server.php
include
src
tests
thirdparty
tools
travis
.gitignore
.gitmodules
.travis.yml
CMakeLists.txt
CREDITS
LICENSE
README.md
Version2.md
build.sh
clear.sh
config.m4
make.sh
package.xml
php7_wrapper.h
php_swoole.h
swoole.c
swoole_async.c
swoole_atomic.c
swoole_buffer.c
swoole_channel.c
swoole_channel_coro.cc
swoole_client.c
swoole_client_coro.c
swoole_config.h
swoole_coroutine.cc
swoole_coroutine.h
swoole_coroutine_util.c
swoole_event.c
swoole_http.h
swoole_http_client.c
swoole_http_client.h
swoole_http_client_coro.c
swoole_http_server.c
swoole_http_v2_client.c
swoole_http_v2_client.h
swoole_http_v2_client_coro.c
swoole_http_v2_server.c
swoole_lock.c
swoole_memory_pool.c
swoole_mmap.c
swoole_msgqueue.c
swoole_mysql.c
swoole_mysql.h
swoole_mysql_coro.c
swoole_postgresql_coro.c
swoole_postgresql_coro.h
swoole_process.c
swoole_process_pool.c
swoole_redis.c
swoole_redis_coro.c
swoole_redis_server.c
swoole_ringqueue.c
swoole_runtime.cc
swoole_serialize.c
swoole_serialize.h
swoole_server.c
swoole_server_port.c
swoole_socket_coro.c
swoole_table.c
swoole_timer.c
swoole_trace.c
swoole_websocket_server.c
wechat
.htaccess
autoload.php
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5436787D.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_startup.php
get_version.php
get_version_new.php
index.html
index.php
reg.lock
robots.txt
54 lines
1.4 KiB
PHP
Executable File
54 lines
1.4 KiB
PHP
Executable File
<?php
|
|
$serv = new swoole_server("127.0.0.1", 9501, SWOOLE_BASE);
|
|
|
|
$serv->set(array(
|
|
'worker_num' => 1,
|
|
'task_worker_num' => 1,
|
|
'task_ipc_mode' => 4,
|
|
// 'message_queue_key' => 0x70001001,
|
|
));
|
|
|
|
$serv->on('Receive', function(swoole_server $serv, $fd, $from_id, $data) {
|
|
//AsyncTask
|
|
$data = trim($data);
|
|
//$data = str_repeat('A', 8192*100);
|
|
// if ($data == 'async')
|
|
// if(false)
|
|
if (true)
|
|
{
|
|
$task_id = $serv->task($data, 0);
|
|
$serv->send($fd, "Dispath AsyncTask: id=$task_id\n");
|
|
}
|
|
//Sync Task
|
|
else
|
|
{
|
|
$res = $serv->taskwait($data, 10);
|
|
echo "Dispath SyncTask: result=".$res.PHP_EOL;
|
|
}
|
|
//$serv->send($fd, "OK\n");
|
|
});
|
|
$serv->on('Task', function (swoole_server $serv, $task_id, $from_id, $data) {
|
|
echo "#{$serv->worker_id}\tonTask: [PID={$serv->worker_pid}]: task_id=$task_id, data_len=".strlen($data).".".PHP_EOL;
|
|
$serv->finish($data);
|
|
return $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 ($serv->taskworker)
|
|
{
|
|
swoole_set_process_name("php {$argv[0]}: task_worker");
|
|
}
|
|
else
|
|
{
|
|
swoole_set_process_name("php {$argv[0]}: worker");
|
|
}
|
|
echo "Worker#$worker_id, pid=".posix_getpid()." start".PHP_EOL;
|
|
});
|
|
|
|
$serv->start();
|