3 changed files with 127 additions and 8 deletions
@ -0,0 +1,54 @@ |
|||||
|
<?php |
||||
|
/** |
||||
|
* 体育 |
||||
|
*/ |
||||
|
use Workerman\Worker; |
||||
|
use Workerman\Timer; |
||||
|
use app\common\dm\Dm; |
||||
|
use app\common\logic\PassFlow; |
||||
|
require_once __DIR__ . '/workman/vendor/autoload.php'; |
||||
|
require_once __DIR__ . '../../source/application/common/dm/Dm.php'; |
||||
|
require_once __DIR__ . '../../source/application/common/logic/PassFlow.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/helper.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/library/think/Config.php'; |
||||
|
require_once __DIR__ . '../../source/application/common.php'; |
||||
|
$config = require_once __DIR__ . '../../source/application/database.php'; |
||||
|
|
||||
|
$worker = new Worker('websocket://0.0.0.0:1235'); |
||||
|
$worker->count = 4; |
||||
|
// 进程启动后定时推送数据给客户端 |
||||
|
$worker->onWorkerStart = function($worker) use($config) { |
||||
|
# 数据库链接不能在主进程,方法外是主进程 |
||||
|
$dm = new Dm($config['connections']['dm']); |
||||
|
// 每2.5秒执行一次 |
||||
|
$time_interval = 3; |
||||
|
Timer::add($time_interval, function()use($worker,$dm){ |
||||
|
foreach($worker->connections as $connection) { |
||||
|
$data = []; |
||||
|
# 主动推送对应页面数据 |
||||
|
|
||||
|
$groupIdArr = []; |
||||
|
$groupRes = $dm->select('bt_passenger_monitor_group',['type' => 1]); |
||||
|
foreach ($groupRes as $groupRow) $groupIdArr[] = $groupRow['groupId']; |
||||
|
$groupIdStr = !empty($groupIdArr) ? implode("|",$groupIdArr) : ''; |
||||
|
|
||||
|
# 累计服务人数 |
||||
|
$data['allGroupNum'] = ['data' => PassFlow::allGroupNum($dm,['groupsId' => $groupIdStr])]; |
||||
|
|
||||
|
# 24小时 |
||||
|
$data['getPassHoursData'] = ['data' => PassFlow::getPassHoursData($dm,['groupsId' => $groupIdStr])]; |
||||
|
|
||||
|
# 24小时进馆人数 |
||||
|
$data['realTimeData'] = ['data' => PassFlow::realTimeData($dm)]; |
||||
|
|
||||
|
# 各场馆服务人次占比 |
||||
|
$data['allGroupTimeNum'] = ['data' => PassFlow::allGroupTimeNum(['groupsId' => $groupIdStr,'granularity' => 'daily'],$dm)]; |
||||
|
|
||||
|
# 各场馆服务人次趋势 |
||||
|
$data['toDayGroupsEnterNum'] = ['data' => PassFlow::toDayGroupsEnterNum($dm,['groupsId' => $groupIdStr])]; |
||||
|
|
||||
|
$connection->send(json_encode($data)); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
Worker::runAll(); |
||||
@ -0,0 +1,46 @@ |
|||||
|
<?php |
||||
|
/** |
||||
|
* 文化 |
||||
|
*/ |
||||
|
use Workerman\Worker; |
||||
|
use Workerman\Timer; |
||||
|
use app\common\dm\Dm; |
||||
|
use app\common\logic\PassFlow; |
||||
|
require_once __DIR__ . '/workman/vendor/autoload.php'; |
||||
|
require_once __DIR__ . '../../source/application/common/dm/Dm.php'; |
||||
|
require_once __DIR__ . '../../source/application/common/logic/PassFlow.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/helper.php'; |
||||
|
require_once __DIR__ . '../../source/thinkphp/library/think/Config.php'; |
||||
|
require_once __DIR__ . '../../source/application/common.php'; |
||||
|
$config = require_once __DIR__ . '../../source/application/database.php'; |
||||
|
|
||||
|
$worker = new Worker('websocket://0.0.0.0:1236'); |
||||
|
$worker->count = 4; |
||||
|
// 进程启动后定时推送数据给客户端 |
||||
|
$worker->onWorkerStart = function($worker) use($config) { |
||||
|
# 数据库链接不能在主进程,方法外是主进程 |
||||
|
$dm = new Dm($config['connections']['dm']); |
||||
|
// 每2.5秒执行一次 |
||||
|
$time_interval = 3; |
||||
|
Timer::add($time_interval, function()use($worker,$dm){ |
||||
|
foreach($worker->connections as $connection) { |
||||
|
$data = []; |
||||
|
# 主动推送对应页面数据 |
||||
|
|
||||
|
# 累计服务人数 - 24小时服务人次 |
||||
|
$data['allFlowTrends'] = ['data' => PassFlow::allFlowTrends($dm)]; |
||||
|
|
||||
|
# 24小时总服务人次趋势 |
||||
|
$data['getLibraryHours24List'] = ['data' => PassFlow::getLibraryHours24List($dm)]; |
||||
|
|
||||
|
# 各场馆服务人次趋势 |
||||
|
$data['getLibraryGroupHoursList'] = ['data' => PassFlow::getLibraryGroupHoursList($dm)]; |
||||
|
|
||||
|
# 图书馆数据统计 |
||||
|
$data['getLibraryLeaseData'] = ['data' => PassFlow::getLibraryLeaseData($dm)]; |
||||
|
|
||||
|
$connection->send(json_encode($data)); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
Worker::runAll(); |
||||
Loading…
Reference in new issue