记录下Gearman下面static变量会遇到的问题.
class Ticket{ static public function config(){ return []//从数量库中获取; } static public function getTicketConfig($itype){ static $configHash; $configHash or $configHash = self::config(); return $configHash[$itype]?$configHash[$itype]:[]; } }
这行代码如果在常规的BS架构中是可以减少数据库请求次数的,config()方法中的数据会在下一次请求的时候同步变化,在本次请求中是保持不变的.
但是如果放到gearman下面因为是无限循环模式会导致static变量永远不再更新,直到你重启worker端.有可能影响业务逻辑!