2017-10-04 12 views
0

で私は2つのジョブのキューを持っています。明晰Laravelキューデータ別にチェーン

$this->dispatch(new Test1Job())->chain(new Test2Job($here I want to have a paramter, which is returned from Test1Job)); 

は、どのように私は、キューに別のジョブからデータを取り出すことができますか?

答えて

0

コードベースを見てジョブを連鎖させるだけです。そこにはゼロのドキュメントがあります。ちょっとした研究をしてから、投稿者にはcommittedジョブチェインのコードがあることがわかりました。 ジョブを連鎖させる必要がある場合は明らかに問題になりますが、それはできません。

私はそれを行うために別のライブラリを使用します。私はguzzle/promisesと呼ばれるものを見つけました。

use Carbon\Carbon; 
use GuzzleHttp\Promise\Promise; 
use GuzzleHttp\Promise\EachPromise; 

$job1 = (new JobClass1())->delay(Carbon::now()->addSeconds(5)); 
$job2 = (new JobClass2()); 
$job3 = (new JobClass3()); 
$job4 = (new JobClass4()); 

$promises = [dispatch($job1),dispatch($job2),dispatch($job3),dispatch($job4)]; 

$each = new EachPromise($promises, [ 
    'fulfilled' => function ($value, $id, Promise $aggregate) use (&$called) { 
     $aggregate->resolve(null); 
    }, 
    'rejected' => function (\Exception $reason) { 
     echo $reason->getMessage(); 
    } 
]); 

$p = $each->promise(); 

foreach($p as $i => $prom){ 
    $prom->resolve(); 
    $prom->wait(); 
} 
関連する問題