有没有异步执行代码的方法 [ 2.0 版本 ]
PHP或者Yii2有没有类似异步执行代码的方法,比如Node.js等的回调这种。
具体情况是:我在一个Controller的actionCreate里面要执行的操作比较多,如果等所有代码执行完,再return,这样用户等待的时间有点长,甚至会出现超时的情况。
请问各位同仁,有没有比较好的解决方案?
共 7 个回答
-
-
dingjj2010 回答于 2015-12-22 09:21 举报
一个间接的方法,在处理的同时,用循环curl去访问你要的方法。
-
这种场景最简单的方法是使用消息队列的发布订阅模式:前端控制器往队列中写作业的参数消息,后台作业消费消息,处理任务;根据负载情况调整处理作业的进程数。
你也可以用一些异步方案,比如 swoole:http://www.swoole.com/ , workerman:http://www.workerman.net/
-
-
-
small_turtle 回答于 2016-04-13 16:09 举报
用beanstalk ,我们公司用它异步写资源消耗的日志.3w玩家/天,一年多了基本没出过问题.取的时候多开几个线程取就行了.需要一个相对大些的内存,读取数据太慢的话挺占内存的.配置一些参数把缓存的使用空间弄小一些,虽然不是独占的,但是好像php不会主动使用缓存所占的内存.
-
chunguang_1002 回答于 2017-12-25 20:04 举报
yield
八宝粥 北京
注册时间:2015-04-18
最后登录:2019-01-27
在线时长:26小时12分
最后登录:2019-01-27
在线时长:26小时12分
- 粉丝30
- 金钱4425
- 威望20
- 积分4885