利用临时表在php-fpm里面实现一次性的bootstrap

php-fpm 子进程在创建的时候, 无法强制执行一个初始化过程, 但是没有关系.

可以为php-fpm提供一个长连接到postgresql. 默认的, 每一个子进程拥有一个PG长连接.

我希望在这个长连接建立的初始, 来执行一些初始化动作,比如编译prepared statemenet. 

做法如下:

1:获得pg_pconnect连接的时候, 查询可见临时表,比如"app_init"的存在

2: 如果不存在, 创建这个表, 并执行初始化动作

3:如果存在, 不做任何额外操作

这样可以保证, prepared statement 被编译,并且仅被编译一次. 编译是在第一次建立长连接的时候发生. 这就实现了bootstrap.


你可能感兴趣的:(利用临时表在php-fpm里面实现一次性的bootstrap)