我只是想单纯的用php实现非阻塞任务
$worker -> do(function(){ //...io耗时任务...}) -> then(function($result){ //任务完成后的通知回调});
有什么好的方式呢? 执行任务的时候不能阻塞。
其实下面的几种都没问题,swoole reactPHP workerman等均能实现下面的处理逻辑
$worker -> request('http://....') -> then(function($result){ //任务完成后的通知回调}); $worker -> query('select * from .....') -> then(function($result){ //任务完成后的通知回调}); $worker -> getFile('./test.txt') -> then(function($result){ //任务完成后的通知回调});
但是下面这种却无法实现。
$worker -> do(function(){ request('http://...'); query('select * ....'); getFile('./test.txt'); reject(...); //error resolve(...); //success}) -> then(function($result){ //任务完成后的通知回调});
https://github.com/hprose/hpr...
http://nikic.github.io/2012/1...
我想实现的是do里面是function,function里面是一些任务,仔细想了下应该是无法实现这个操作的,因为异步任务的话,上下文关系已经变了,不知道我的理解是否正确?
墨色风雨