Skip to content

Commit 513324b

Browse files
authored
Merge pull request #709 from ReWiG/patch-57
Update queues.md
2 parents 0dbaf45 + 5b7c99a commit 513324b

File tree

1 file changed

+33
-5
lines changed

1 file changed

+33
-5
lines changed

queues.md

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
git: e6614cccb4af772862d5d666e7b7ad9878790765
2+
git: 7af3c41df42294ab469d698189975fa087a3c21a
33
---
44

55
# Очереди
@@ -63,7 +63,7 @@ php artisan migrate
6363
6464
**Кластер Redis**
6565

66-
Если ваше соединение с очередью Redis использует кластер Redis, то имена ваших очередей должны содержать [ключевой хеш-тег](https://redis.io/docs/reference/cluster-spec/#hash-tags). Это необходимо для того, чтобы все ключи Redis для указанной очереди были поставлены в один и тот же хеш-слот:
66+
Если ваше соединение с очередью Redis использует [кластер Redis](https://redis.io/docs/latest/operate/rs/databases/durability-ha/clustering), то имена ваших очередей должны содержать [ключевой хеш-тег](https://redis.io/docs/latest/develop/using-commands/keyspace/#hashtags). Это необходимо для того, чтобы все ключи Redis для указанной очереди были поставлены в один и тот же хеш-слот:
6767

6868
```php
6969
'redis' => [
@@ -219,6 +219,34 @@ public function __construct(
219219
) {}
220220
```
221221

222+
Для удобства, если вы хотите сериализовать все модели без связей, вы можете применить атрибут `WithoutRelations` ко всему классу вместо того, чтобы применять атрибут к каждой модели:
223+
224+
```php
225+
<?php
226+
227+
namespace App\Jobs;
228+
229+
use App\Models\DistributionPlatform;
230+
use App\Models\Podcast;
231+
use Illuminate\Contracts\Queue\ShouldQueue;
232+
use Illuminate\Foundation\Queue\Queueable;
233+
use Illuminate\Queue\Attributes\WithoutRelations;
234+
235+
#[WithoutRelations]
236+
class ProcessPodcast implements ShouldQueue
237+
{
238+
use Queueable;
239+
240+
/**
241+
* Create a new job instance.
242+
*/
243+
public function __construct(
244+
public Podcast $podcast,
245+
public DistributionPlatform $platform,
246+
) {}
247+
}
248+
```
249+
222250
Если задание получает коллекцию или массив моделей Eloquent вместо одной модели, отношения между моделями в этой коллекции не будут восстановлены при десериализации и выполнении задания. Это необходимо для предотвращения чрезмерного использования ресурсов в заданиях, связанных с большим количеством моделей.
223251

224252
<a name="unique-jobs"></a>
@@ -248,7 +276,8 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
248276
```php
249277
<?php
250278

251-
use App\Models\Product;
279+
namespace App\Jobs;
280+
252281
use Illuminate\Contracts\Queue\ShouldQueue;
253282
use Illuminate\Contracts\Queue\ShouldBeUnique;
254283

@@ -257,7 +286,7 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
257286
/**
258287
* Экземпляр продукта.
259288
*
260-
* @var \App\Product
289+
* @var \App\Models\Product
261290
*/
262291
public $product;
263292

@@ -291,7 +320,6 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
291320
```php
292321
<?php
293322

294-
use App\Models\Product;
295323
use Illuminate\Contracts\Queue\ShouldQueue;
296324
use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing;
297325

0 commit comments

Comments
 (0)