代码拉取完成,页面将自动刷新
// 启动 Test配置文件 BinConfig 目录下
php server.php start --conf-Test
// 重启
php server.php reload --conf-Test
// stop 不推荐
ps -ef |grep -i Test |awk '{print $2}' |xargs kill -9
// 控制器 方法 key value ....
php cli.php Tests run key value
server_type
仅可使用 HTTP (默认)框架自带进程应用 \PipProcess\Dispense::class
可用于:
// 分配任务
\swoole_timer_tick(5000, [self::class, 'saveWorkConfig']);
// todo 每10分钟 定时重启 可自定义
\swoole_timer_tick(1000 * 600, [\Library\Kill::class, 'reloadWorker']);
从上面分配任务定时器可以看到子进程启动分配worker 进程任务任务可自定义, 具体操作如下:
<?php
namespace Controller;
use Library\Logger;
use Core\BaseController;
class Test extends BaseController
{
/**
* worker 进程启动时 如果有分配任务 会根据默认路由 调用默认路由的 init 方法
*
* //默认路由 init
* 'autoRoute' => \Controller\Test::class,
*/
public function init()
{
// 初始铺单配置
$pudanInfo = SettingModel::savePudanConfig();
// 初始化铺单配置
Logger::pudanInfo(['初始铺单配置 =>' => $pudanInfo]);
// 每 300MS 更新对标交易对价格
\swoole_timer_tick(300, [PudanService::class, 'benchmarkPrice']);
// 设置定时器 更新铺单配置
\swoole_timer_tick(5000, [SettingModel::class, 'saveConfig']);
}
/**
* 子进程调用默认路由中 taskDispense 方法 返回值为任务列表
* ------------------------------------------------------------
*/
public function taskDispense()
{
// 获取需要铺单的交易对
$pudanList = PudanListModel::pudanList();
$taskList = [];
// 分配铺单任务
foreach ($pudanList as $pudanInfo) {
if (empty($pudanInfo['benchmark_exchange'])) continue;
// 任务参数 交易对 sig 标识 交易平台
$taskList[] = [
$pudanInfo['symbol'], // 交易对
$pudanInfo['ac_name'], // sig 账号标识
$pudanInfo['strategy'], // 策略
$pudanInfo['timidRate'], // 最怂比例参数 万分比
$pudanInfo['serviceRate'] // 手续费率 万分比
];
}
// 默认数组key 相当于 分配的worker进程ID
return $taskList;
}
}
支持 Tcp
Http
Webscocket
协议, 框架兼容Swoole4.2版本, enable_coroutine
参数为 flase
使用 go 调用协程 (复杂业务不推荐使用swoole协程).
open_dispatch_func
接口服务开启该参数, 可自定义数据包分发方法 \Library\Dispatch::mode($packData)
. 分包策略
\Library\Logger
\Library\DingTalk\Action
\Library\Core\Links
\Helper\...
\Swlib\SaberGM
示例: \Commond\SpiderMan
PHP Warning: Swoole\Server::start(): onPipeMessage handler error.
ProcessManager::sendToWorker($workerId, $taskInfo
, [Central::class, 'taskRouter']);
抛错: PHP Warning: Swoole\Server::start(): onPipeMessage handler error.
修复 $taskInfo
外层包数组
ProcessManager::sendToWorker($workerId, [$taskInfo]
, [Central::class, 'taskRouter']);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型