SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend Framework入門

分散環境でのPHPによるタスク管理 - Zend_Queue -

Zend Frameworkによる実践的なPHPアプリケーション開発 32

  • X ポスト
  • このエントリーをはてなブックマークに追加

Activemqアダプタ

 Apache ActiveMQメッセージング関連のミドルウェアで、正にメッセージキューを扱うために作成されたシステムです。

準備

 Zend_QueueコポーネントとApache ActiveMQは、Stompプロトコル(Stompプロトコルについては次回説明します)で通信します。Apache ActiveMQでStompプロトコルを有効にするには設定ファイル「conf/activemq.xml」を編集し「transportConnectors」のエントリに1行追加します。

リスト10 ActiveMQでStompプロトコルを有効にする
...
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
        </transportConnectors>
...

 ▼

...
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
            <transportConnector name="stomp" uri="stomp://localhost:61613"/>
        </transportConnectors>
...

 この変更を行った後でApache ActiveMQを起動します。

コンストラクタ

 コンストラクタへのオプションには次の値を設定できます。

Activemqアダプタのオプション
name メッセージキューの名前
driverOptions.host ActiveMQの動作しているサーバ、デフォルトの値は'127.0.0.1'
driverOptions.port ActiveMQがStompプロトコルを受け付けているポート、デフォルトの値は61613
driverOptions.username 認証を要求している場合は、ユーザ名を指定
driverOptions.password 認証を要求している場合は、パスワードを指定
driverOptions.timeout_sec ActiveMQの返答を待つ時間を秒単位で指定、デフォルトの値は 2
driverOptions.timeout_usec ActiveMQの返答を待つ時間のマイクロ秒単位の部分を指定、デフォルトの値は 0

 ここで「name」はメッセージキューの名前ですが、Apache ActiveMQの制限の関係で次のどれかで開始する必要があります:

  • /queue/
  • /topic/
  • /temp-queue/
  • /temp-topic/

 次の例では「/queue/codezine_queue」をメッセージキューの名前として利用することにします。

リスト11 Activemqアダプタへのオプションの与え方の例(activemq.php)
// (1)オプション
$options = array(
    'name' => '/queue/codezine_queue',
    'driverOptions' => array(
        'host'      => 'localhost',
        'port'      => 61613, /* Stomp経由でアクセスする */
    ),
);

// (2)コンストラクタ
$queue = new Zend_Queue('Activemq', $options);

 先程と同様に(1)でオプションを配列$optionに設定し、(2)でコンストラクタを作成しています。(2)では「Activemq」をアダプタに指定しています。

各メソッド

 Activemqアダプタでは子キューを利用することができません。つまり、createQueueメソッドやdeleteQueueメソッドを利用することができません。

おわりに

 今回はZend_Queueコンポーネントの基本的な使い方について見ていきました。オフラインで処理できるようなタスクを管理するための仕組みであるメッセージキューを、簡単に利用できることが分かったと思います。

 次回は今回紹介できなかったアダプタの利用方法について見ていきたいと思います。また、アダプタの作成方法やStompを利用したキューの操作の方法について見ていきたいと思います。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Zend Framework入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5662 2011/01/14 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング