在控制器里生成SnowFlakeId時(shí),在高并發(fā)場(chǎng)景下還是會(huì)發(fā)生ID重復(fù),需要傳入$workerId參數(shù)可以避免,已知在process的onWorkerStart里可以得到$worker->id,那么在controller里,該怎么得到$worker對(duì)象呢?
借樓問(wèn)下
有沒(méi)有適用于webman的雪花算法庫(kù)
composer
"godruoyi/php-snowflake": "^2.0",
使用
$snowflake = new \Godruoyi\Snowflake\Snowflake;
$snowflake->id();
godruoyi/php-snowflake如果直接使用的話,在同一毫秒內(nèi)的并發(fā)請(qǐng)求會(huì)有重復(fù)結(jié)果,后來(lái)我用easyswoole/utility里的SnowFlake,用起來(lái)挺方便。https://www.easyswoole.com/Components/Help/snowFlake.html