Skip to content

Commit e6b691a

Browse files
authored
[7.x] Allow including a closure in a queued chain (#31488)
* allow including a closure in a queued chain * update QueueFake * update QueueFake * serialize jobs in chain
1 parent d2fa877 commit e6b691a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/Illuminate/Bus/Queueable.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Illuminate\Bus;
44

5+
use Closure;
6+
use Illuminate\Queue\CallQueuedClosure;
7+
use Illuminate\Queue\SerializableClosure;
58
use Illuminate\Support\Arr;
69

710
trait Queueable
@@ -142,7 +145,11 @@ public function through($middleware)
142145
public function chain($chain)
143146
{
144147
$this->chained = collect($chain)->map(function ($job) {
145-
return serialize($job);
148+
return serialize(
149+
$job instanceof Closure
150+
? new CallQueuedClosure(new SerializableClosure($job))
151+
: $job
152+
);
146153
})->all();
147154

148155
return $this;

0 commit comments

Comments
 (0)