首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
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
发布于7年前 · 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
回复