Workerman 应用于 laravel 框架时,不能支持多进程的问题

zhouyongjin

laravel 框架的命令行 都是有 artisan.php 启动的。 而 Worker.php 中


line576 static::$_startFile = $backtrace[\count($backtrace) - 1]['file'];
line579 $unique_prefix = \str_replace('/', '_', static::$_startFile);
line601 static::$_statisticsFile  = \sys_get_temp_dir() . "/$unique_prefix.status";

运行多个 laravel 命令, 都是一个 $_statisticsFile, 相互干扰。

建议:
if (empty(static::$_statisticsFile)) {
static::$_statisticsFile = \sys_get_temp_dir() . "/$unique_prefix.status";
}

谢谢了

1422 1 0
1个回答

walkor

感谢反馈,主干已经优化,准备随下个版本一起发布。

  • zhouyongjin 2021-03-29

    这个变量需要 public 的, 现在是 protected

  • walkor 2021-03-29

    现在路径包含了pid,不会冲突了

年代过于久远,无法发表回答
🔝