swoft-cloud / swoft

🚀 PHP Microservice Full Coroutine Framework
https://swoft.org
Apache License 2.0
5.58k stars 786 forks source link

swoft怎么在自定义的进程中使用主进程当中创建的swoft-table对象 #576

Closed sirzhangsai closed 5 years ago

sirzhangsai commented 5 years ago
Q A
Bug report? yes/no
Feature request? yes/no
Swoft version x.y.z
Swoole version x.y.z (by php --ri swoole)
PHP version x.y.z (by php -v)
Runtime environment Win10/Mac/CentOS 7/Ubuntu/Docker etc.

Details

Describe what you are trying to achieve and what goes wrong.

// paste output here

Provide minimal script to reproduce the issue

// paste code
inhere commented 5 years ago

可以放到 一个全局静态变量里 比如 Swoft::$talble

sirzhangsai commented 5 years ago

谢谢你的回答!我之前是在App这个类中定义一个静态变量$table,我在子进程当中执行App::$table->set(),然后在主进程中使用App::$table->get()想要获得子进程中设置的值但一直返回的是空,怀疑到不知道怎么使用共享table,后来发现是程序会先执行主进程中的get,然后才执行子进程中的set,所以在get的方法上加上一个sleep就可以获得到子进程中的set()值了。

inhere commented 5 years ago

你要在 server 启动前创建 table 对象,才能跨进程使用