Laravel 11, многопользовательские очереди Spatie не запускаютсяPhp

Кемеровские программисты php общаются здесь
Anonymous
Laravel 11, многопользовательские очереди Spatie не запускаются

Сообщение Anonymous »

Я использую Laravel 11 с пакетом Spatie/Multi-tenancy. для создания мультиарендного SaaS-приложения.
Вот моя database.php

Код: Выделить всё

   'tenant' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => null,
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],

'landlord' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'landlord_db',
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
multitenancy.php

Код: Выделить всё

 'tenant_finder' =>  Spatie\Multitenancy\TenantFinder\DomainTenantFinder::class,
'switch_tenant_tasks' => [
// \Spatie\Multitenancy\Tasks\PrefixCacheTask::class,
Spatie\Multitenancy\Tasks\SwitchTenantDatabaseTask::class,
// \Spatie\Multitenancy\Tasks\SwitchRouteCacheTask::class,
],
'tenant_model' => Tenant::class,

'queues_are_tenant_aware_by_default' => true,

'tenant_database_connection_name' => 'tenant',

/*
* The connection name to reach the landlord database.
*/
'landlord_database_connection_name' => 'landlord',
env-файл

Код: Выделить всё

   DB_CONNECTION=tenant
DB_HOST=mysql_db
DB_PORT=3306
DB_DATABASE=landlord_db
DB_USERNAME=root
DB_PASSWORD=root
app.php, пожалуйста, дайте мне знать, правильно ли промежуточное программное обеспечение

Код: Выделить всё

return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__ . '/../routes/web.php',
api: __DIR__ . '/../routes/api.php',
commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->api(append: [
\Spatie\Multitenancy\Http\Middleware\NeedsTenant::class,
\Spatie\Multitenancy\Http\Middleware\EnsureValidTenantSession::class,
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Session\Middleware\StartSession::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {

})
Моя проблема в том, что очереди не активируются:

Код: Выделить всё

    php artisan queue:work
Пожалуйста, дайте мне знать, если я что-то забыл или что-то упустил.
ошибка StackTrace:

Код: Выделить всё

[2024-09-20 20:05:25] local.ERROR: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected (Connection: tenant, SQL: select * from `jobs` where `queue` = high and ((`reserved_at` is null and `available_at` 

Подробнее здесь: [url]https://stackoverflow.com/questions/79008060/laravel-11-spatie-multi-tenancy-queues-are-not-triggered[/url]

Вернуться в «Php»