99
1010``` php
1111return [
12+ 'bootstrap' => [
13+ 'queue', // Компонент регистрирует свои консольные команды
14+ ],
1215 'components' => [
1316 'queue' => [
1417 'class' => \zhuravljov\yii\queue\<driver >\Queue::class,
@@ -54,8 +57,6 @@ Yii::$app->queue->push(new DownloadJob([
5457]));
5558```
5659
57- Способы выполнения задач могут различаться, и зависят от используемого в расширении драйвера.
58-
5960Отправить задание для выполнения с задержкой в 5 минут:
6061
6162``` php
@@ -69,6 +70,14 @@ Yii::$app->queue->later(new DownloadJob([
6970в отладочных целях, обрабатывает ` later() ` как обычный ` push() ` .
7071
7172
73+ Обработка очереди
74+ -----------------
75+
76+ Способы обработки очереди задач могут различаться, и зависят от используемого драйвера. В большей
77+ части драйверов воркеры запускаются с помощью консольных команд, которые компонент сам регистрирует
78+ в приложении. Детальное описание смотрите в документации конкретного драйвера.
79+
80+
7281Статус заданий
7382--------------
7483
@@ -88,7 +97,7 @@ Yii::$app->queue->isReserved($id);
8897Yii::$app->queue->isDone($id);
8998```
9099
91- ** Внимание:** Драйвер для RebbitMQ не поддерживает статусы.
100+ ** Внимание:** Драйвер RebbitMQ не поддерживает статусы.
92101
93102
94103Сообщения для сторонних воркеров
@@ -104,7 +113,7 @@ Yii::$app->queue->push([
104113]);
105114```
106115
107- Это допустимо, если очередь обрабатывается сторонним воркером, разработанным специально .
116+ Это допустимо, если очередь обрабатывается сторонним воркером, разработанным индивидуально .
108117
109118Если воркер разрабатыватеся не на PHP, то, также, необходимо изменить способ сериализации данных,
110119чтобы сообщения кодировались доступным воркеру форматом. Например, настроить сериализацию в json,
@@ -130,8 +139,8 @@ return [
130139``` php
131140return [
132141 'bootstrap' => [
133- 'queue1',
134- 'queue2',
142+ 'queue1', // Первый компонент регистрирует свои консольные команды
143+ 'queue2', // Второй - свои
135144 ],
136145 'components' => [
137146 'queue1' => [
@@ -166,12 +175,12 @@ Yii::$app->queue2->push([
166175Ограничения
167176-----------
168177
169- Используя очереди важно помнить, что задачи ставятся в очередь и извлекаются из нее в разных
170- процессах. Поэтому, при обработке задания, избегайте использования внешних зависимостей, когда
171- не уверены в том, что они будут доступны в том окружении, где работает воркер.
178+ Используя очереди важно помнить, что задачи ставятся и извлекаются из очереди в разных процессах.
179+ Поэтому, при обработке задания, избегайте использования внешних зависимостей, когда не уверены
180+ в том, что они будут доступны в окружении, где работает воркер.
172181
173- Все данные, необходимые для выполнения задания, нужно оформлять в виде свойств Вашего job-объекта, и
174- отправлять в очередь вместе с ним.
182+ Все данные, необходимые для выполнения задания, нужно оформлять в виде свойств Вашего job-объекта,
183+ и отправлять в очередь вместе с ним.
175184
176185Если в задании нужно работать с моделью ` ActiveRecord ` , вместо самой модели передавайте ее ID. А в
177186момент выполнения извлекайте ее из базы данных.
0 commit comments