mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 11:34:02 +00:00
Central queues
This commit is contained in:
parent
58fbdd5281
commit
2641fae3a3
2 changed files with 25 additions and 3 deletions
|
|
@ -25,8 +25,8 @@ class QueueTenancyBootstrapper implements TenancyBootstrapper
|
||||||
|
|
||||||
$queue = $this->app['queue'];
|
$queue = $this->app['queue'];
|
||||||
if (! $queue instanceof QueueFake) {
|
if (! $queue instanceof QueueFake) {
|
||||||
$queue->createPayloadUsing(function () use (&$bootstrapper) {
|
$queue->createPayloadUsing(function ($connection) use (&$bootstrapper) {
|
||||||
return $bootstrapper->getPayload();
|
return $bootstrapper->getPayload($connection);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -41,12 +41,16 @@ class QueueTenancyBootstrapper implements TenancyBootstrapper
|
||||||
$this->started = false;
|
$this->started = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPayload()
|
public function getPayload(string $connection)
|
||||||
{
|
{
|
||||||
if (! $this->started) {
|
if (! $this->started) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->app['config']["queue.connections.$connection.tenancy"] === false) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
$id = tenant('id');
|
$id = tenant('id');
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,24 @@ class QueueTest extends TestCase
|
||||||
return $event->job->payload()['tenant_id'] === tenant('id');
|
return $event->job->payload()['tenant_id'] === tenant('id');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
public function tenancy_is_not_initialized_in_non_tenant_queues()
|
||||||
|
{
|
||||||
|
$this->loadLaravelMigrations(['--database' => 'tenant']);
|
||||||
|
Event::fake();
|
||||||
|
|
||||||
|
config(['queue.connections.central' => [
|
||||||
|
'driver' => 'sync',
|
||||||
|
'tenancy' => false,
|
||||||
|
]]);
|
||||||
|
|
||||||
|
dispatch(new TestJob())->onConnection('central');
|
||||||
|
|
||||||
|
Event::assertDispatched(JobProcessing::class, function ($event) {
|
||||||
|
return ! isset($event->job->payload()['tenant_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestJob implements ShouldQueue
|
class TestJob implements ShouldQueue
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue