[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Queue-Adapters.xml
blob37104f07c4d8744082a644b22aa4d04c2ef63d42
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20854 -->
4 <sect1 id="zend.queue.adapters">
5     <title>アダプタ</title>
7     <para>
8         <classname>Zend_Queue</classname>は、
9         インターフェース<classname>Zend_Queue_Adapter_AdapterInterface</classname>を実装する
10         すべての待ち行列をサポートします。
11         以下のメッセージ待ち行列サービスがサポートされます:
12     </para>
14     <itemizedlist>
15         <listitem>
16             <para>
17                 <ulink url="http://activemq.apache.org/">Apache ActiveMQ</ulink>.
18             </para>
19         </listitem>
21         <listitem>
22             <para>
23                 <classname>Zend_Db</classname>を経たデータベースによる待ち行列
24             </para>
25         </listitem>
27         <listitem>
28             <para>
29                 <classname>Memcache</classname>による
30                 <ulink url="http://memcachedb.org/memcacheq/">MemcacheQ</ulink>待ち行列
31             </para>
32         </listitem>
34         <listitem>
35             <para>
36                 <ulink url="http://www.zend.co.jp/product/zendplatform.html">Zend Platform</ulink>
37                 のジョブキュー。
38             </para>
39         </listitem>
41         <listitem>
42             <para>
43                 内部配列。ユニットテストに役立ちます。
44             </para>
45         </listitem>
46     </itemizedlist>
48     <note id="zend.queue.adapters.limitations">
49         <title>限定事項</title>
51         <para>
52             メッセージ・トランザクション処理は、サポートされません。
53         </para>
54     </note>
56     <sect2 id="zend.queue.adapters.configuration">
57         <title>固有のアダプタ - 設定の構成</title>
59         <para>
60             デフォルトの設定が示される場合は、パラメータは任意です。
61             デフォルトの設定が指定されない場合は、パラメータが必要です。
62         </para>
64         <sect3 id="zend.queue.adapters.configuration.activemq">
65             <title>Apache ActiveMQ - Zend_Queue_Adapter_Activemq</title>
67             <para>
68                 ここでリストされたオプションは、既知の必須条件です。
69                 すべてのメッセージ発信サーバが、
70                 ユーザー名またはパスワードを必要とするというわけではありません。
71             </para>
73             <itemizedlist>
74                 <listitem>
75                     <para>
76                          <emphasis>$options['name'] = '/temp/queue1';</emphasis>
77                     </para>
79                     <para>
80                         これは、使い始めたい待ち行列の名前です。(必須)
81                     </para>
82                 </listitem>
84                 <listitem>
85                     <para>
86                         <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
87                     </para>
89                     <para>
90                         <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
91                     </para>
93                     <para>
94                         ホストをIPアドレスまたはホスト名にセットするかもしれません。
95                     </para>
97                     <para>
98                         ホストのデフォルトの設定は '127.0.0.1' です。
99                     </para>
100                 </listitem>
102                 <listitem>
103                     <para>
104                         <emphasis>$options['driverOptions']['port'] = 61613;</emphasis>
105                     </para>
107                     <para>ポートのデフォルトの設定は 61613 です。</para>
108                 </listitem>
110                 <listitem>
111                     <para>
112                          <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
113                     </para>
115                     <para>
116                         一部のメッセージ発信サーバのために選択できます。
117                         メッセージ発信サーバのためのマニュアルを読んでください。
118                     </para>
119                 </listitem>
121                 <listitem>
122                     <para>
123                         <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
124                     </para>
126                     <para>
127                         一部のメッセージ発信サーバのために選択できます。
128                         メッセージ発信サーバのためのマニュアルを読んでください。
129                     </para>
130                 </listitem>
132                 <listitem>
133                     <para>
134                         <emphasis>$options['driverOptions']['timeout_sec'] = 2;</emphasis>
135                     </para>
137                     <para>
138                         <emphasis>$options['driverOptions']['timeout_usec'] = 0;</emphasis>
139                     </para>
141                     <para>
142                         これは、<classname>Zend_Queue_Adapter_Activemq</classname>がメッセージを返さない前に
143                         ソケットで読み取り活動を待つ時間です。
144                     </para>
145                 </listitem>
146             </itemizedlist>
147         </sect3>
149         <sect3 id="zend.queue.adapters.configuration.Db">
150             <title>Db - Zend_Queue_Adapter_Db</title>
152             <para>
153                 ドライバオプションは、多少の必須のオプションのためにチェックされます。
154                 (例えば<emphasis>type</emphasis>、<emphasis>host</emphasis>、<emphasis>username</emphasis>、
155                 <emphasis>password</emphasis>と<emphasis>dbname</emphasis>)
156                 <varname>$options['driverOptions']</varname>でパラメータとして、
157                 <methodname>Zend_DB::factory()</methodname>のために付加パラメータに沿って渡すかもしれません。
158                 ここでは一覧に示されていませんが、
159                 渡すことができる付加的なオプションは<emphasis>port</emphasis>でしょう。
160             </para>
162             <programlisting language="php"><![CDATA[
163 $options = array(
164     'driverOptions' => array(
165         'host'      => 'db1.domain.tld',
166         'username'  => 'my_username',
167         'password'  => 'my_password',
168         'dbname'    => 'messaging',
169         'type'      => 'pdo_mysql',
170         'port'      => 3306, // optional parameter.
171     ),
172     'options' => array(
173         // 更新のためにZend_Db_Selectを使います。
174         // 全てのデータベースがこのフィーチャをサポートできるわけではありません。
175         Zend_Db_Select::FOR_UPDATE => true
176     )
179 // データベース待ち行列を作成
180 $queue = new Zend_Queue('Db', $options);
181 ]]></programlisting>
183             <itemizedlist>
184                 <listitem>
185                     <para>
186                          <emphasis>$options['name'] = 'queue1';</emphasis>
187                     </para>
189                     <para>
190                         これは、使い始めたい待ち行列の名前です。(必須)
191                     </para>
192                 </listitem>
194                 <listitem>
195                     <para>
196                         <emphasis>$options['driverOptions']['type'] = 'Pdo';</emphasis>
197                     </para>
199                     <para>
200                         <emphasis>type</emphasis>は、
201                         <methodname>Zend_Db::factory()</methodname>を
202                         使ってもらいたいアダプタです。
203                         これは、<methodname>Zend_Db::factory()</methodname>
204                         クラス・メソッド呼び出しの最初のパラメータです。
205                     </para>
206                 </listitem>
208                 <listitem>
209                     <para>
210                         <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
211                     </para>
213                     <para>
214                         <emphasis>$options['driverOptions']['host'] = '127.0.0.1';</emphasis>
215                     </para>
217                     <para>ホストをIPアドレスまたはホスト名にセットするかもしれません。</para>
219                     <para>ホストのデフォルトの設定は '127.0.0.1' です。</para>
220                 </listitem>
222                 <listitem>
223                     <para>
224                          <emphasis>$options['driverOptions']['username'] = 'username';</emphasis>
225                     </para>
226                 </listitem>
228                 <listitem>
229                     <para>
230                         <emphasis>$options['driverOptions']['password'] = 'password';</emphasis>
231                     </para>
232                 </listitem>
234                 <listitem>
235                     <para>
236                         <emphasis>$options['driverOptions']['dbname'] = 'dbname';</emphasis>
237                     </para>
239                     <para>
240                         必須のテーブルを作成したデータベース名。
241                         下記の注意部分を見てください。
242                     </para>
243                 </listitem>
244             </itemizedlist>
245         </sect3>
247         <sect3 id="zend.queue.adapters.configuration.memcacheq">
248             <title>MemcacheQ - Zend_Queue_Adapter_Memcacheq</title>
250             <itemizedlist>
251                 <listitem>
252                     <para>
253                          <emphasis>$options['name'] = 'queue1';</emphasis>
254                     </para>
256                     <para>
257                         これは、使い始めたい待ち行列の名前です。(必須)
258                     </para>
259                 </listitem>
261                 <listitem>
262                     <para>
263                          <emphasis>$options['driverOptions']['host'] = 'host.domain.tld';</emphasis>
264                     </para>
266                     <para>
267                          <emphasis>$options['driverOptions']['host'] = '127.0.0.1;'</emphasis>
268                     </para>
270                     <para>ホストをIPアドレスまたはホスト名にセットするかもしれません。</para>
272                     <para>ホストのデフォルトの設定は '127.0.0.1' です。</para>
273                 </listitem>
275                 <listitem>
276                     <para>
277                         <emphasis>$options['driverOptions']['port'] = 22201;</emphasis>
278                     </para>
280                     <para>ポートのデフォルトの設定は 22201 です。</para>
281                 </listitem>
282             </itemizedlist>
283         </sect3>
285         <sect3 id="zend.queue.adapters.configuration.platformjq">
286             <title>Zend Platform ジョブキュー - Zend_Queue_Adapter_PlatformJobQueue</title>
288             <itemizedlist>
289                 <listitem>
290                     <para>
291                          <emphasis>$options['daemonOptions']['host'] = '127.0.0.1:10003';</emphasis>
292                     </para>
294                     <para>
295                         利用したい Zend Platform ジョブキューデーモンに対応するホスト名とポート。(必須)
296                     </para>
297                 </listitem>
299                 <listitem>
300                     <para>
301                          <emphasis>$options['daemonOptions']['password'] = '1234';</emphasis>
302                     </para>
304                     <para>
305                         Zend Platform ジョブキューデーモンにアクセスするために必要なパスワード。(必須)
306                     </para>
307                 </listitem>
308             </itemizedlist>
309         </sect3>
311         <sect3 id="zend.queue.adapters.configuration.array">
312             <title>配列 - Zend_Queue_Adapter_Array</title>
314             <itemizedlist>
315                 <listitem>
316                     <para>
317                          <emphasis>$options['name'] = 'queue1';</emphasis>
318                     </para>
320                     <para>
321                         これは、使い始めたい待ち行列の名前です。(必須)
322                     </para>
323                 </listitem>
324             </itemizedlist>
325         </sect3>
326     </sect2>
328     <sect2 id="zend.queue.adapters.notes">
329         <title>アダプタ固有の注意</title>
331         <para>下記のアダプタには注意があります:</para>
333         <sect3 id="zend.queue.adapters.notes.activemq">
334             <title>Apache ActiveMQ</title>
336             <para>
337                 <classname>Zend_Queue_Adapter_Activemq</classname>のための可視性期間は利用できません。
338             </para>
340             <para>
341                 ApacheのActiveMQが複数のサブスクリプションをサポートするのに対して、
342                 <classname>Zend_Queue</classname>はそうしません。
343                 それぞれのサブスクリプションのために
344                 新しい<classname>Zend_Queue</classname>オブジェクトを作成しなければなりません。
345             </para>
347             <para>
348                 ActiveMQの待ち行列または項目の名前は下記のうちの一つで始めなくてはいけません:
349             </para>
351             <itemizedlist>
352                 <listitem>
353                     <para>
354                         <filename>/queue/</filename>
355                     </para>
356                 </listitem>
358                 <listitem>
359                     <para>
360                         <filename>/topic/</filename>
361                     </para>
362                 </listitem>
364                 <listitem>
365                     <para>
366                         <filename>/temp-queue/</filename>
367                     </para>
368                 </listitem>
370                 <listitem>
371                     <para>
372                         <filename>/temp-topic/</filename>
373                     </para>
374                 </listitem>
375             </itemizedlist>
377             <para>
378                 例えば: <filename>/queue/testing</filename>
379             </para>
381             <para>
382                 下記の関数はサポートされません:
383             </para>
385             <itemizedlist>
386                 <listitem>
387                     <para>
388                          <methodname>create()</methodname> - 待ち行列の作成。
389                          この関数を呼ぶと例外を発生します。
390                     </para>
391                 </listitem>
393                 <listitem>
394                     <para>
395                         <methodname>delete()</methodname> - 待ち行列の削除。
396                          この関数を呼ぶと例外を発生します。
397                     </para>
398                 </listitem>
400                 <listitem>
401                     <para>
402                         <methodname>getQueues()</methodname> - 待ち行列の一覧。
403                          この関数を呼ぶと例外を発生します。
404                     </para>
405                 </listitem>
406             </itemizedlist>
407         </sect3>
409         <sect3 id="zend.queue.adapters.notes.zend_db">
410             <title>Zend_Db</title>
412             <para>
413                 データベース<emphasis>CREATE TABLE ( ... )</emphasis> <acronym>SQL</acronym>
414                 文が<filename>Zend/Queue/Adapter/Db/mysql.sql</filename>にあります。
415             </para>
416         </sect3>
418         <sect3 id="zend.queue.adapters.notes.memcacheQ">
419             <title>MemcacheQ</title>
421             <para>
422                 Memcacheは<ulink
423                     url="http://www.danga.com/memcached/">http://www.danga.com/memcached/</ulink>
424                 からダウンロードできます。
425             </para>
427             <para>
428                 MemcacheQは<ulink
429                     url="http://memcachedb.org/memcacheq/">http://memcachedb.org/memcacheq/</ulink>
430                 からダウンロードできます。
431             </para>
433             <itemizedlist>
434                 <listitem>
435                     <para>
436                         <methodname>deleteMessage()</methodname> - 
437                         メッセージは、待ち行列から受信と同時に削除されます。
438                         この関数を呼んでも効果がありません。
439                         この関数を呼ぶとエラーを発生します。
440                     </para>
441                 </listitem>
443                 <listitem>
444                     <para>
445                         <methodname>count()</methodname>または<methodname>count($adapter)</methodname>
446                         - MemcacheQは、待ち行列で件数を数えるためのメソッドをサポートしません。
447                         この関数を呼ぶとエラーを発生します。
448                     </para>
449                 </listitem>
450             </itemizedlist>
451         </sect3>
453         <sect3 id="zend.queue.adapters.notes.platformjq">
454             <title>Zend Platform ジョブキュー</title>
456             <para>
457                 ジョブキューは、企業ソリューション商品 Zend Platform のフィーチャーです。
458                 それは伝統的なメッセージキューではなく、その代わりに渡したいパラメータと一緒に、
459                 実行するスクリプトを待ち行列に入れることができます。
460                 <ulink url="http://www.zend.co.jp/product/zendplatform.html">zend.co.jpウェブサイト</ulink>
461                 でジョブ・キューについてもっと知ることができます。
462             </para>
464             <para>
465                 以下は、このアダプターの動作が標準的な提供物と相違するメソッドの一覧です:
466             </para>
468             <itemizedlist>
469                 <listitem>
470                     <para>
471                         <methodname>create()</methodname> - Zend Platformには、
472                         個別のキューの概念がありません。
473                         その代わりに、管理者が実行段階ジョブにスクリプトを与えることができます。
474                         新しいスクリプトを加えることは管理画面に制限されるので、
475                         このメソッドは、単にアクションが禁じられていることを示す例外を投げます。
476                     </para>
477                 </listitem>
479                 <listitem>
480                     <para>
481                         <methodname>isExists()</methodname> - <methodname>create()</methodname>
482                         と同様に、ジョブキューには命名されたキューの概念がないので、
483                         このメソッドは呼び出されると例外を投げます。
484                     </para>
485                 </listitem>
487                 <listitem>
488                     <para>
489                         <methodname>delete()</methodname> - <methodname>create()</methodname>
490                         と同様に、管理画面以外ではジョブキューのスクリプトの削除はできません。
491                         このメソッドは、例外を発生します。
492                     </para>
493                 </listitem>
495                 <listitem>
496                     <para>
497                         <methodname>getQueues()</methodname> - Zend Platformは、
498                         APIによってスクリプトを取り扱う、タスク生成されたジョブを参照できません。
499                         このメソッドは、例外を投げます。
500                     </para>
501                 </listitem>
503                 <listitem>
504                     <para>
505                         <methodname>count()</methodname> - ジョブキューで現在アクティブなジョブの
506                         数を返します。
507                     </para>
508                 </listitem>
510                 <listitem>
511                     <para>
512                         <methodname>send()</methodname> - このメソッドは、恐らく最も他のアダプターと
513                         異なるメソッドの一つです。<varname>$message</varname>引数は3種類のどれか1つで、
514                         渡された値によって異なる動作をします。
515                     </para>
517                     <itemizedlist>
518                         <listitem>
519                             <para>
520                                 <acronym>string</acronym> - 実行するジョブキューに登録されるスクリプト名
521                                 このように渡されると、引数はスクリプトに与えられません。
522                             </para>
523                         </listitem>
525                         <listitem>
526                             <para>
527                                 <acronym>array</acronym> - <classname>ZendApi_Job</classname>オブジェクトを
528                                 設定する配列。これらは、以下を含むかもしれません。
529                             </para>
531                             <itemizedlist>
532                                 <listitem>
533                                     <para>
534                                         <varname>script</varname> - 実行するジョブキュースクリプト名
535                                         (必須)
536                                     </para>
537                                 </listitem>
539                                 <listitem>
540                                     <para>
541                                         <varname>priority</varname> - キューに名前を登録するときに使う
542                                         ジョブ優先順位
543                                     </para>
544                                 </listitem>
546                                 <listitem>
547                                     <para>
548                                         <varname>name</varname> - ジョブを記述する短い文字列
549                                     </para>
550                                 </listitem>
552                                 <listitem>
553                                     <para>
554                                         <varname>predecessor</varname> - これが始まるであろう前に
555                                         実行されなければいけない、これがそれによって左右される
556                                         ジョブのID
557                                     </para>
558                                 </listitem>
560                                 <listitem>
561                                     <para>
562                                         <varname>preserved</varname> - ジョブ・キュー・ヒストリの
563                                         内部でジョブを保持するべきかどうか。デフォルトはoff。
564                                         保持するためには、 <constant>TRUE</constant> を渡します。
565                                     </para>
566                                 </listitem>
568                                 <listitem>
569                                     <para>
570                                         <varname>user_variables</varname> - ジョブの実行中に、
571                                         (命名された引数と同様に)保持したい変数すべての連想配列
572                                     </para>
573                                 </listitem>
575                                 <listitem>
576                                     <para>
577                                         <varname>interval</varname> - ジョブは、しばしば数秒単位で、
578                                         実行しなければならないでしょう。デフォルトは0で、
579                                         一度だけ実行されることを示します。
580                                     </para>
581                                 </listitem>
583                                 <listitem>
584                                     <para>
585                                         <varname>end_time</varname> - 期限満了時刻。それを過ぎると
586                                         ジョブは動作しません。もしジョブが一回だけ実行するよう設定
587                                         されているか、または<varname>end_time</varname>を過ぎると、
588                                         ジョブは実行されません。ジョブが一定間隔ごとに実行するように
589                                         設定されている場合、<varname>end_time</varname>を過ぎると
590                                         実行されません。
591                                     </para>
592                                 </listitem>
594                                 <listitem>
595                                     <para>
596                                         <varname>schedule_time</varname> - いつジョブを実行させるべきかを
597                                         示す<acronym>UNIX</acronym>タイムスタンプ。デフォルトは0で、
598                                         ジョブはできるだけ早く実行しなければならないことを示します。
599                                     </para>
600                                 </listitem>
602                                 <listitem>
603                                     <para>
604                                         <varname>application_id</varname> - ジョブのアプリケーション識別子。
605                                         デフォルトは <constant>NULL</constant> で、キューがアプリケーションIDを割り当てられたら、
606                                         アプリケーションIDがキューによって自動的に割り当てられることを
607                                         示します。
608                                     </para>
609                                 </listitem>
610                             </itemizedlist>
612                             <para>
613                                 前述のように、<varname>script</varname>引数のみ必須です。他のすべては、
614                                 どのように、そして、いつジョブを走らせるべきかというような、
615                                 よりきめ細かい詳細を渡すために利用します。
616                             </para>
617                         </listitem>
619                         <listitem>
620                             <para>
621                                 <classname>ZendApi_Job</classname> - 結局、
622                                 単に<classname>ZendApi_Job</classname>のインスタンスを渡すかもしれません。
623                                 そして、それはPlatformのジョブキューに一緒に渡されます。
624                             </para>
625                         </listitem>
626                     </itemizedlist>
628                     <para>
629                         <methodname>send()</methodname>は、インスタンスの全てで
630                         <classname>Zend_Queue_Message_PlatformJob</classname>オブジェクトを返します。
631                         そして、ジョブキューと通信するために使う<classname>ZendApi_Job</classname>
632                         オブジェクトへのアクセスを提供します。
633                     </para>
634                 </listitem>
636                 <listitem>
637                     <para>
638                         <methodname>receive()</methodname> - ジョブキューから実行中のジョブのリストを
639                         取得します。返されたセットの各々のジョブは、
640                         <classname>Zend_Queue_Message_PlatformJob</classname>のインスタンスです。
641                     </para>
642                 </listitem>
644                 <listitem>
645                     <para>
646                         <methodname>deleteMessage()</methodname> - このアダプターはジョブキューだけで
647                         機能するので、このメソッドは、与えられた<varname>$message</varname>が
648                         <classname>Zend_Queue_Message_PlatformJob</classname>のインスタンスであること
649                         を期待します。
650                         さもなければ例外を発生します。
651                     </para>
652                 </listitem>
653             </itemizedlist>
654         </sect3>
656         <sect3 id="zend.queue.adapters.notes.array">
657             <title>配列 (内部)</title>
659             <para>
660                 配列待ち行列はローカルメモリ上の<acronym>PHP</acronym> <methodname>array()</methodname>です。
661                 <classname>Zend_Queue_Adapter_Array</classname>はユニットテスト用に適しています。
662             </para>
663         </sect3>
664     </sect2>
665 </sect1>