registerEvent(); } public function registerEvent() { foreach ($this->events as $key => $event) { method_exists($this, $event) && $this->$event = [$this, $event]; } } public function onWorkerStart($worker) { $this->worker = $worker; $period = ''; echo '进程' . $worker->id .'启动'. PHP_EOL; if ($worker->id < 8) { $periods = ['1min', '5min', '15min', '30min', '60min', '1day', '1mon', '1week']; //['1day', '1min']; $period = $periods[$worker->id]; $worker->name = 'huobi.ws:' . 'market.kline.' . $period; } else { $worker->name = 'huobi.ws:' . 'market.depth.step0'; } $ws_con = new WsConnection($worker->id); $this->wsConnection = $ws_con; $ws_con->connect(); if ($period == '1day') { Timer::add($this->interval, function () { $data = MarketHour::getHuobiLeverMarket(); echo date('Y-m-d H:i:s') . '定时器取价格' . PHP_EOL; $now = microtime(true); $master_start = microtime(true); echo str_repeat('=', 80) . PHP_EOL; echo date('Y-m-d H:i:s') . '开始发送价格到杠杆交易系统' . PHP_EOL; echo '{' . PHP_EOL; foreach ($data as $key => $value) { $start = microtime(true); echo "\t" . date('Y-m-d H:i:s') . ' 发送' . $value->symbol . ',价格:' . $value->now_price . PHP_EOL; $params = [ 'legal_id' => $value->legal_id, 'legal_name' => $value->legal_name, 'currency_id' => $value->currency_id, 'currency_name' => $value->currency_name, 'now_price' => $value->now_price, 'now' => $now ]; //价格大于0才进行任务推送 if (bc_comp($value->now_price, 0) > 0) { // LeverUpdate::dispatch($params)->onQueue('lever:update'); // LeverPushPrice::dispatch($params)->onQueue('lever:push:price'); } $end = microtime(true); echo "\t" . date('Y-m-d H:i:s') . $value->symbol . '处理完成,耗时' .($end - $start) . '秒' . PHP_EOL; } $master_end = microtime(true); echo '}' . PHP_EOL; echo date('Y-m-d H:i:s') .'杠杆交易系统处理完成,耗时' .($master_end - $master_start) . '秒' . PHP_EOL; echo str_repeat('=', 80) . PHP_EOL; }); } } public function onWorkerReload($worker) { } public function onConnect($connection) { } public function onClose($connection) { } public function onError($connection, $code, $msg) { } public function onMessage($connection, $data) { } }