首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
在服务启动时进行的变量赋值,运行一段时间后值会丢失问题
{{{ public function onWorkerStart($serv , $worker_id) { // 在Worker进程开启时绑定定时器 echo "onWorkerStart " . date('Y-m-d H:i:s') . "\n"; Share::setRedis(getRedisInstance()); //只允许在worker进程才可以添加tick. //$worker_id>= $serv->setting['worker_num'] 时表示这个进程是task_worker。或者使用 !$this->taskworker 判断 if (! $serv->taskworker) { //初始化操作,只执行一次,启用了多worker进程,限制只有每一个主worker里执行一次 if ($worker_id == 0) { $this->server->task('init', 'cbfunc'); } //分享推送 $serv->tick(1000 * 2, function(){ $this->server->task('run', 'cbfunc'); }); } } public function onTask($serv, $task_id, $from_id, $data) { if ($data['data'] == 'init') { Share::init(); } elseif ($data['data'] == 'run') { Share::run(); } //echo '========== onTask task_id:' . $task_id . '===from_id:' . $from_id . '==============' . PHP_EOL; } }}} 我在服务第一次启动的时候在Share::init 里对一个变量进行了赋值操作,后续的Share::run() 会用到这个变量,但程序运行一段时间后,会发现这个变量值不存在了,什么原因?用的是swoole_framework
发布于6年前 · 0 次浏览 · 来自
提问
b
baiwenl
{{{ public function onWorkerStart($serv , $worker_id) { // 在Worker进程开启时绑定定时器 echo "onWorkerStart " . date('Y-m-d H:i:s') . "\n"; Share::setRedis(getRedisInstance()); //只允许在worker进程才可以添加tick. //$worker_id>= $serv->setting['worker_num'] 时表示这个进程是task_worker。或者使用 !$this->taskworker 判断 if (! $serv->taskworker) { //初始化操作,只执行一次,启用了多worker进程,限制只有每一个主worker里执行一次 if ($worker_id == 0) { $this->server->task('init', 'cbfunc'); } //分享推送 $serv->tick(1000 * 2, function(){ $this->server->task('run', 'cbfunc'); }); } } public function onTask($serv, $task_id, $from_id, $data) { if ($data['data'] == 'init') { Share::init(); } elseif ($data['data'] == 'run') { Share::run(); } //echo '========== onTask task_id:' . $task_id . '===from_id:' . $from_id . '==============' . PHP_EOL; } }}} 我在服务第一次启动的时候在Share::init 里对一个变量进行了赋值操作,后续的Share::run() 会用到这个变量,但程序运行一段时间后,会发现这个变量值不存在了,什么原因?用的是swoole_framework
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2019-03-16
d
dream、、
是不是有其他地方清空了这个变量。直接getRedisInstance()能获取到么?
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。