File tree 4 files changed +93
-2
lines changed
4 files changed +93
-2
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ Yii2 キュー・エクステンション
22
22
* [ Beanstalk] ( driver-beanstalk.md )
23
23
* [ Gearman] ( driver-gearman.md )
24
24
* [ AWS SQS] ( driver-sqs.md )
25
+ * [ Stomp] ( driver-stomp.md )
25
26
26
27
開発ツール
27
28
----------
Original file line number Diff line number Diff line change @@ -33,7 +33,9 @@ return [
33
33
];
34
34
```
35
35
36
- データベースにテーブルを追加する必要があります。MySQL のためのスキーマ例:
36
+ データベースにテーブルを追加する必要があります。スキーマ例:
37
+
38
+ MySQL:
37
39
38
40
``` SQL
39
41
CREATE TABLE `queue ` (
@@ -53,8 +55,33 @@ CREATE TABLE `queue` (
53
55
KEY ` priority` (` priority` )
54
56
) ENGINE= InnoDB
55
57
```
58
+ Postgresql:
59
+
60
+ ``` SQL
61
+ -- オートインクリメント・フィールドを作成するために必要
62
+ CREATE SEQUENCE queue_seq ;
63
+
64
+ CREATE TABLE queue (
65
+ id bigint NOT NULL DEFAULT NEXTVAL (' queue_seq' ),
66
+ channel varchar (255 ) NOT NULL ,
67
+ job bytea NOT NULL ,
68
+ pushed_at bigint NOT NULL ,
69
+ ttr bigint NOT NULL ,
70
+ delay bigint NOT NULL DEFAULT 0 ,
71
+ priority bigint check (priority > 0 ) NOT NULL DEFAULT 1024 ,
72
+ reserved_at bigint ,
73
+ attempt bigint ,
74
+ done_at bigint ,
75
+ PRIMARY KEY (id)
76
+ );
77
+ -- 必須ではないが、クエリを高速化するのに良い
78
+ CREATE INDEX channel ON queue (channel);
79
+ CREATE INDEX reserved_at ON queue (reserved_at);
80
+ CREATE INDEX priority ON queue (priority);
81
+ ```
82
+
56
83
57
- マイグレーションが [ src/drivers/db/migrations] ( ../../src/drivers/db/migrations ) から取得できます 。
84
+ マイグレーションが [ src/drivers/db/migrations] ( ../../src/drivers/db/migrations ) にありますので、利用して下さい 。
58
85
59
86
アプリケーションにマイグレーションを追加するためには、コンソールの構成ファイルを編集して、
60
87
[ 名前空間化されたマイグレーション] ( http://www.yiiframework.com/doc-2.0/guide-db-migrations.html#namespaced-migrations ) を構成して下さい。
Original file line number Diff line number Diff line change @@ -24,6 +24,30 @@ return [
24
24
];
25
25
```
26
26
27
+ FIFO キューのための構成例:
28
+
29
+ ``` php
30
+ return [
31
+ 'bootstrap' => [
32
+ 'queue', // コンポーネントが自身のコンソール・コマンドを登録します
33
+ ],
34
+ 'components' => [
35
+ 'queue' => [
36
+ 'class' => \yii\queue\sqs\Queue::class,
37
+ 'url' => '<sqs url >',
38
+ 'key' => '<key >',
39
+ 'secret' => '<secret >',
40
+ 'region' => '<region >',
41
+ 'messageGroupId' => '<Group ID >',
42
+ ],
43
+ ],
44
+ ];
45
+ ```
46
+
47
+ SQS では、FIFO キューのためにはメッセージ・グループ ID が必要です。自分自身で構成するか、"default" という値を使って下さい。
48
+
49
+ 重複回避 ID が自動的に生成されます。そのため、SQS キューでコンテント・ベースの重複回避を有効にしていたとしても、この ID が使われることになります。
50
+
27
51
コンソール
28
52
----------
29
53
Original file line number Diff line number Diff line change
1
+ Stomp ドライバ
2
+ ==============
3
+
4
+
5
+ このドライバは ActiveMQ キューで動作します。
6
+
7
+ ` enqueue/stomp ` パッケージを必要とします。
8
+
9
+ 構成例:
10
+
11
+ ``` php
12
+ return [
13
+ 'bootstrap' => [
14
+ 'queue', // コンポーネントが自身のコンソール・コマンドを登録します
15
+ ],
16
+ 'components' => [
17
+ 'queue' => [
18
+ 'class' => \yii\queue\stomp\Queue::class,
19
+ 'host' => 'localhost',
20
+ 'port' => 61613,
21
+ 'queueName' => 'queue',
22
+ ],
23
+ ],
24
+ ];
25
+ ```
26
+
27
+ コンソール
28
+ ----------
29
+
30
+ キューに入れられたジョブを実行するためにコンソール・コマンドが使用されます。
31
+
32
+ ``` sh
33
+ yii queue/listen [timeout]
34
+ ```
35
+
36
+ ` listen ` コマンドは無限にキューを調べ続けるデーモンを起動します。キューに新しいタスクがあると、即座に取得され、実行されます。
37
+ ` timeout ` パラメータはキューを調べる間のスリープの秒数を指定するものです。
38
+ このコマンドを [ supervisor] ( worker.md#supervisor ) または [ systemd] ( worker.md#systemd ) によって適切にデーモン化するのが、
39
+ 最も効率的な方法です。
You can’t perform that action at this time.
0 commit comments