1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 09:54:03 +00:00

Fix Queue tenancy

This commit is contained in:
Samuel Štancl 2019-09-22 20:30:30 +02:00
parent 23cf9e5366
commit 10c5f8d98d
2 changed files with 13 additions and 8 deletions

View file

@ -11,7 +11,7 @@ use Stancl\Tenancy\Tenant;
class QueueTenancyBootstrapper implements TenancyBootstrapper
{
/** @var bool Has tenancy been started. */
protected $started = false;
public $started = false;
/** @var Application */
protected $app;
@ -20,11 +20,9 @@ class QueueTenancyBootstrapper implements TenancyBootstrapper
{
$this->app = $app;
$this->app['queue']->createPayloadUsing([$this, 'createPayload']);
$this->app['events']->listen(\Illuminate\Queue\Events\JobProcessing::class, function ($event) {
if (array_key_exists('tenant_id', $event->job->payload())) {
tenancy()->initById($event->job->payload()['tenant_id']);
}
$bootstrapper = &$this;
$this->app['queue']->createPayloadUsing(function () use (&$bootstrapper) {
return $bootstrapper->getPayload();
});
}
@ -38,13 +36,13 @@ class QueueTenancyBootstrapper implements TenancyBootstrapper
$this->started = false;
}
public function createPayload()
public function getPayload()
{
if (! $this->started) {
return [];
}
$id = tenant()->get('id');
$id = tenant('id');
return [
'tenant_id' => $id,

View file

@ -47,6 +47,13 @@ class TenancyServiceProvider extends ServiceProvider
return $instance;
});
// Queue tenancy
$this->app['events']->listen(\Illuminate\Queue\Events\JobProcessing::class, function ($event) {
if (array_key_exists('tenant_id', $event->job->payload())) {
tenancy()->initialize(tenancy()->find($event->job->payload()['tenant_id']));
}
});
}
/**