$token = 'token'; $partitioner = new TestPubPartitioner(); // 定义了包中最多包涵的message条数 $max_package_message_count = 300; // 定义测试中发包条数 $max_package_count = 50000; echo "[Publish {$max_package_count} packages]\n"; $pub_file = fopen('./pub.txt', 'w+'); // 以下描述了一个bigpipe publisher的发布流程 // 该流程适合用于无状态发布(既每次都是init + send) $uid = BigpipeUtilities::get_uid(); $count = 0; $succeed = 0; while ($count < $max_package_count) { $pub = new BigpipePublisher(); if ($pub->init_ex($pipe_name, $token, $partitioner, $conf)) { // 发布流程从调用init接口成功后开始 echo '[Success][init publisher]\\n'; // 与c-api不同, // bigpipe php-api 发送的是一个message package // message package大小不能超过2MB // 用户声明BigpipeMessagePackage后, 调用push接口向package添加单条message $max_msg_count = rand(1, $max_package_message_count); echo "[Pack {$max_msg_count} messages to package <{$count}>]\n"; $msg = null; $msg_package = new BigpipeMessagePackage(); $msg_count = 0; while ($msg_count++ < $max_msg_count) { $msg = sprintf("[php-api-test][bigpipe_pvt_cluster3][uid:%s][package:%u][seq:%u]\n", $uid, $count, $msg_count); // 用户向message package添加单条message if (!$msg_package->push($msg)) {