问题描述 如何动态的创建进程或php强制restart所有程序呢? 搞了一天搞吐了, 用worker_start创建的进程状态跑不起来, 通过删除主进程posix_kill(posix_getppid(), SIGUSR1); 重启也不行(通过读DB动态生成的process 不会重新启动), 通过自己写个sh,php里面执行shell 重启整个服务也不行, 裂开了...
问题描述 我在db里面插入一条记录,每条记录代表代表一个进程, 如果有新的进程进来或者状态更新, 那么需要新增进程/禁用相应的进程,这样的功能应该如何实现呢? 想到的解决方案 简单粗暴的方法就行通过php start.php restart -d 去执行重启命令, 但是因为db里面的数据是随时可能发生变化的, 不能每次都去手动的执行重启, 因此想到了借鉴内存溢出重启/文件监控的方案, posix_kill($ppid...
问题描述 不知道你们发现没, 如果服务(接口)长时间不调用,那么首次调用响应时间就比较长 我有一个接口正常响应是20ms, 如果一两个小时不调用再次调用的时候时长有时候会到500ms或者1s, 这是为很么呢 其他情况说明 那个服务只对外提供刚刚那一个接口, 没有其他额外的接口 问题复现 增加了nginx代理(代理方式是按照官方文档提供的)之后第一次访问会明显的较慢, 直接访问端口却没有任何问题...
问题描述 webman自定义进程中process.php 想动态获取数据库配置,发现如果数据库里面如果有符合条件的内容那么页面就不会报错, 如果查询出来的数据为空, 程序就报错了, 代码实测是没有问题的, 是不是因为在process自定义进程中会出现一些莫名其妙的问题呢? 如果要处理的话应该如何去写呢 程序代码 global $kafkaConfig; global $db; if (empty($kafkaCon...
问题描述 用jmeter 压测了一下api, 结果导致CPU占用高, 一直持续40%左右, 业务早已执行完毕, 一个小时后还是40%左右, api接口很简单, 就是向kafka 发送一条数据,也没有循环等业务场景 执行status命令 Workerman[start.php] status ----------------------------------------------GLOBAL STATUS---...
问题描述 需求是需要动态的读取数据库的配置,然后启动多个process, 目前使用DB查询方法导致报错, 如果无法用DB方法查询的话, 那这些参数应该如何动态读取呢? 程序代码 use support\Db; $group_ids = Db::table('apps')->limit('10')->pluck('app_uid')->toArray(); var_dump($group_ids);...
问题描述 Event官方事件 为什么无法捕获try catch抛出的异常呢? try { var_dump('事件运行开始').PHP_EOL; \Webman\Event\Event::emit('cloud_events_log.send', [ 'where' => [ 'event_id' => '10fbd719-3306-5490-b37...
已解决 Widodws下面加锁失败, Linux下是ok的 使用场景 在修改用户余额/积分的时候需要增加一个业务锁来实现具体的功能 问题描述 需要加锁的时候发现加锁失败,然后去追了一下插件的源码,发现代码核心用的都是Symfony/lock,然后去翻看官方文件, 跳过插件直接去加锁 测试结果(只测试了Redis锁) (Windows环境) 平台 第1秒发送第一次请求 第1次程序响应时间 第2秒发送第二次请求...
问题描述 插件名称:【workbunny】RabbitMQ客户端, 服务首次启动调用MQ,异步发送多次任务的时候会报错, 此时控制台只会输出一个信息,再一次请求就不会出问题了 程序代码 for ($i=1; $i <= 3; $i++){ async_publish(TestBuilder::instance(), date('Y-m-d H:i:s').'_______...
问题描述 引入了DB类之后无法启动服务 程序代码 use support\Request; use support\Db; public function index(Request $request) { $list = Db::table('fa_user')->where('id', '1')->value('username'); ...