Skip to content

Commit 7428968

Browse files
divinerobjbrain
andauthored
fix: backport check failed log storage (#2364)
* fix: backport check failed log storage Backport #2357 to L8 Co-Authored-By: Rob Brain <[email protected]> * chore: update changelog Co-Authored-By: Rob Brain <[email protected]> Co-authored-by: Rob Brain <[email protected]>
1 parent bf1158d commit 7428968

File tree

4 files changed

+37
-9
lines changed

4 files changed

+37
-9
lines changed

Diff for: CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ All notable changes to this project will be documented in this file.
66
### Added
77
- Support for cursor pagination [#2358](https://github.com/jenssegers/laravel-mongodb/pull/2358) by [@Jeroenwv](https://github.com/Jeroenwv).
88

9+
### Fixed
10+
- Backport check if queue service is disabled [#2357](https://github.com/jenssegers/laravel-mongodb/pull/2357) by [@robjbrain](https://github.com/robjbrain).
11+
912
## [3.8.4] - 2021-05-27
1013

1114
### Fixed

Diff for: src/MongodbQueueServiceProvider.php

+32-9
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,46 @@
22

33
namespace Jenssegers\Mongodb;
44

5+
use Illuminate\Queue\Failed\NullFailedJobProvider;
56
use Illuminate\Queue\QueueServiceProvider;
67
use Jenssegers\Mongodb\Queue\Failed\MongoFailedJobProvider;
78

89
class MongodbQueueServiceProvider extends QueueServiceProvider
910
{
1011
/**
11-
* @inheritdoc
12+
* Register the failed job services.
13+
*
14+
* @return void
1215
*/
1316
protected function registerFailedJobServices()
1417
{
15-
// Add compatible queue failer if mongodb is configured.
16-
if ($this->app['db']->connection(config('queue.failed.database'))->getDriverName() == 'mongodb') {
17-
$this->app->singleton('queue.failer', function ($app) {
18-
return new MongoFailedJobProvider($app['db'], config('queue.failed.database'), config('queue.failed.table'));
19-
});
20-
} else {
21-
parent::registerFailedJobServices();
22-
}
18+
$this->app->singleton('queue.failer', function ($app) {
19+
$config = $app['config']['queue.failed'];
20+
21+
if (array_key_exists('driver', $config) &&
22+
(is_null($config['driver']) || $config['driver'] === 'null')) {
23+
return new NullFailedJobProvider;
24+
}
25+
26+
if (isset($config['driver']) && $config['driver'] === 'mongodb') {
27+
return $this->mongoFailedJobProvider($config);
28+
} elseif (isset($config['driver']) && $config['driver'] === 'dynamodb') {
29+
return $this->dynamoFailedJobProvider($config);
30+
} elseif (isset($config['driver']) && $config['driver'] === 'database-uuids') {
31+
return $this->databaseUuidFailedJobProvider($config);
32+
} elseif (isset($config['table'])) {
33+
return $this->databaseFailedJobProvider($config);
34+
} else {
35+
return new NullFailedJobProvider;
36+
}
37+
});
38+
}
39+
40+
/**
41+
* Create a new MongoDB failed job provider.
42+
*/
43+
protected function mongoFailedJobProvider(array $config): MongoFailedJobProvider
44+
{
45+
return new MongoFailedJobProvider($this->app['db'], $config['database'], $config['table']);
2346
}
2447
}

Diff for: tests/TestCase.php

+1
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,6 @@ protected function getEnvironmentSetUp($app)
6868
'expire' => 60,
6969
]);
7070
$app['config']->set('queue.failed.database', 'mongodb2');
71+
$app['config']->set('queue.failed.driver', 'mongodb');
7172
}
7273
}

Diff for: tests/config/queue.php

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
'failed' => [
1919
'database' => env('MONGO_DATABASE'),
20+
'driver' => 'mongodb',
2021
'table' => 'failed_jobs',
2122
],
2223

0 commit comments

Comments
 (0)