You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: queues.md
+33-5Lines changed: 33 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
git: e6614cccb4af772862d5d666e7b7ad9878790765
2
+
git: 7af3c41df42294ab469d698189975fa087a3c21a
3
3
---
4
4
5
5
# Очереди
@@ -63,7 +63,7 @@ php artisan migrate
63
63
64
64
**Кластер Redis**
65
65
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 для указанной очереди были поставлены в один и тот же хеш-слот:
67
67
68
68
```php
69
69
'redis' => [
@@ -219,6 +219,34 @@ public function __construct(
219
219
) {}
220
220
```
221
221
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
+
222
250
Если задание получает коллекцию или массив моделей Eloquent вместо одной модели, отношения между моделями в этой коллекции не будут восстановлены при десериализации и выполнении задания. Это необходимо для предотвращения чрезмерного использования ресурсов в заданиях, связанных с большим количеством моделей.
223
251
224
252
<aname="unique-jobs"></a>
@@ -248,7 +276,8 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
248
276
```php
249
277
<?php
250
278
251
-
use App\Models\Product;
279
+
namespace App\Jobs;
280
+
252
281
use Illuminate\Contracts\Queue\ShouldQueue;
253
282
use Illuminate\Contracts\Queue\ShouldBeUnique;
254
283
@@ -257,7 +286,7 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
257
286
/**
258
287
* Экземпляр продукта.
259
288
*
260
-
* @var \App\Product
289
+
* @var \App\Models\Product
261
290
*/
262
291
public $product;
263
292
@@ -291,7 +320,6 @@ class UpdateSearchIndex implements ShouldQueue, ShouldBeUnique
291
320
```php
292
321
<?php
293
322
294
-
use App\Models\Product;
295
323
use Illuminate\Contracts\Queue\ShouldQueue;
296
324
use Illuminate\Contracts\Queue\ShouldBeUniqueUntilProcessing;
0 commit comments