Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
»ArchiveList (Tag for "mom" )
«Prev ||1 ·| Next»
2012/02/09

ØMQ ( zeromq ) 事始め

zeromq  ruby  mom 

ØMQ がちょっと面白そうだったので、サンプルを書いて動作確認してみました。
MQ という名前がついているので MOM の一種かと思うのですが、ちょっしたキューの機能はあるものの、メッセージの永続化やトランザクション機能を持っていないので、下記の解説にもあるとおり使いやすいソケットライブラリと考えた方が良さそうです。

The Intelligent Transport Layer - zeromq

ØMQ \zeromq\:
 Ø  The socket library that acts as a concurrency framework.
 Ø  Faster than TCP, for clustered products and supercomputing.
 Ø  Carries messages across inproc, IPC, TCP, and multicast.
 Ø  Connect N-to-N via fanout, pubsub, pipeline, request-reply.
 Ø  Asynch I/O for scalable multicore message-passing apps.
 Ø  Large and active open source community.
 Ø  30+ languages including C, C++, Java, .NET, Python.
 Ø  Most OSes including Linux, Windows, OS X.
 Ø  LGPL free software with full commercial support from iMatix.

以下、動作確認メモ。

[ØMQ ( zeromq ) 事始め の続きを読む]

    at 19:41 |
    2011/09/21

    Java から MSMQ を使う

    java  mom  ruby 

    おそらくこういう事をやろうという人がいないのだろうと思いますが、ググっても情報が出てきません。やりたいのは以前に書いた「Ruby から MSMQ を使う」「JRuby と IronRuby と Ruby-mingw32 のスレッド実装の違い」のあわせ技のような感じなのですが、意外と時間がかかってしまいました。

    大まかな話としては Java から COM を呼び出せれば目標達成なわけなので、JRubyも使っていると思っていたJACOBというライブラリを使ってみました。

    JACOB - Java COM Bridge | Download JACOB - Java COM Bridge software for free at SourceForge.net

    JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls to the COM libraries. JACOB runs on x86 and x64 environments supporting 32 bit and 64 bit JVMs

    これで最低限のことはできるのですが、どうしても既存のAPIだけでは定数が名前で呼び出せません。最初はちょっとダサいけど、ライブラリの制限なので仕方ないかなーと思いましたが、よくよく考えたらjruby-win32ole は WIN32OLE::const_load で定数取れてるじゃないかということに気づいたので、じゃあそのの実装はどうなってるんだろうと調べ始めてしまったのが、運の尽きでした。

    [Java から MSMQ を使う の続きを読む]

      at 23:52 |
      2010/10/12

      Ruby 1.8 と 1.9 のスレッドの違いにハマる

      ruby  mom 

      先日ちょっと書いたRuby から MSMQを使う話の続き。
      このプログラムをちょっといじって、スレッドを使って複数のキューを待つようにしてみたら、うまく動かなくて色々試行錯誤したのでメモ。

      結論から述べると、スレッドでやりたい場合にはRuby 1.9系に移行するのがいいみたいです。
      どうしても1.8でやりたい場合には、forkなどを使ってマルチプロセス化しないといけなさそうな感です。

      この対処方法は誤りです。現状のWin32OLEはマルチスレッド動作しません

      [Ruby 1.8 と 1.9 のスレッドの違いにハマる の続きを読む]

        at 22:35 |
        2010/10/02

        Ruby から MSMQ を使う

        ruby  mom 

        MSMQでRubyからメッセージ受送信できる方法を調べてみたのでメモ。

        ちょっと調べてみたところ、RubyにはMSMQ向けのライブラリはないようなのでWIN32OLE経由で呼び出だすことにします。よって、ホストがWindowsでない場合、以下のサンプルスクリプトは動作しません。MSMQのCOMのインタフェイスについてはMSDNの「メッセージ キュー COM コンポーネント」で調べることができます。

        プログラミング自体はそんなに難しくはありませんが、ハマりやすいポイントとしてはキューがトランザクションキューかそうでないかで、受送信方法が異なることでしょうか。トランザクションキューにするか否かの設定はキュー作成時に行う必要があり、作成後は変更することができないので、うっかりキューの種類にそぐわない方法で受送信を行おうとするとうまくいきません。

        [Ruby から MSMQ を使う の続きを読む]

          at 22:40 |
          2009/04/25

          Rubyでお手軽MQ

          ruby  sh  mom 

          仕事でバッチの多重起動を防止するスクリプトを書いたのですが、これだと後続のバッチがキャンセルされてしまって実行されないので、ジョブをQueueに溜めて逐次実行してくれる仕組みが欲しくなったので、Rubyを使ってMQサーバを書いてみました。

          RubyにはQueueクラスがあるので、これを使ってdrbからメッセージを投げ込むようにすれば簡単なMQサーバはすぐにできるのですが、これだとメッセージの永続化機能がないので、不慮の事故でマシンの電源が落ちたりするとそのままメッセージが消滅してしまいます。それだと色々と問題があるので、今回はap4rのバックエンドにも使われている永続化機能を持ったメッセージキューであるreliable-msgを使います。

          僕がかつて使っていたIBM MQ Series ( Webshere MQ Series )と比べればおもちゃのようなものですが、ちょっと使う分にはこれで十分です。

          [Rubyでお手軽MQ の続きを読む]

            at 23:11 |
            2007/10/30

            PHPでMOMを使う

            mom 

            前々からPHPでMOM使えたら便利なんだけどなぁと思ってたんですが、PHPからActiveMQを呼び出す方法があるみたいです。これはちょっと面白そう。これはmemcached以来の発見かもしれません。

            秋元@サイボウズラボ・プログラマー・ブログ: PHPでメッセージキューを使う

            ActiveMQは、デフォルトでStompプロトコルもサポートしているので、Stompを話すコードを書くか、自分の使っている言語でStompライブラリを探せばよい。Stompライブラリのほうは、SubVersionでのみ公開。一ファイルだし中身もとても短いが、PHPからActiveMQを(というかStompプロトコルに対応したサーバを)呼び出すことができるライブラリ。

            使いどころとしてすぐに思いつくのはメールまとめ送りとかだけど、オンラインバッチのトリガをキューに入れておいたりすると便利なんだよな。ちょっと時間を作って試してみようと思います。

            ちなみに表題の表記をMQにしないのは、どうもMQというと以前使っていたIBM MQを思い出してしまうからです。


              at 20:01 |
              2004/06/14

              JMSを調べる

              java  mom 

              最近、研究のために開発するアプリで採用するアーキテクチャを考えています。大体OKかなというレベルにまでまとまってきたと思っていたのですが、要件を良く考え直してみたみると大量にメールを送る処理があることをすっかり見落としていることに気づきました。

              メール送信は意外に時間がかかるので、その部分はやっぱりトランザクションから切り離したい。さらに、大学のメールサーバはメンテナンスが十分に行き届いているとはいえない*1ので、再送のことなんかを考え始めると非常に頭が痛いところです。

              バッチ処理とかがほとんど必要ないアプリケーションなので、同期処理の部分だけに頭がいっていて、非同期処理部分をぜんぜん考慮していませんでした。

              ソフトウェア設計は難しいです。まだまだ修行が必要ですね。

              [JMSを調べる の続きを読む]
              • *1: つまり、しょっちゅう落ちたりしているということです

              at 02:35 |
              «Prev ||1 ·| Next»
              »ArchiveList (Tag for "mom" )
              Copyright © 2004-2023 by CLES All Rights Reserved.
              サイト内検索
              検索ワードランキング
              貸金庫 審査
              銀行で貸金庫を借りてみた
              Photo
              ポスチャーフィット部品検査着ポテトなど生レモン尽くしスカッシュ正常に受付が完了しました財産債務調書バレット食道2024 年度 基盤研究(C)(一般) blog.cles.jpCelestica Seastone DX010ポスチャーフィットの割れ母子健康手帳 省令様式アーロンチェアのワイヤー新型コロナワクチン接種証明書アプリ冥銭
              へぇが多いエントリ
              閲覧数が多いエントリ
              1 .アーロンチェアのポスチャーフィットを修理(99676)
              2 .年次の人間ドックへ(99089)
              3 .福岡銀がデマの投稿者への刑事告訴を検討中(99079)
              4 .三菱鉛筆がラミーを買収(98689)
              5 .2023 年分の確定申告完了!(1つめ)(98658)
              最新のエントリ
              cles::blogについて
              誰が書いてる?
              最近行った場所
              サイトポリシー
              タグ一覧
              検索ワードランキング

              カテゴリ別エントリ
              Referrers

                Powered by CLES
                Nucleus CMS v3.31SP3/w memcached
                21375536(W:6161 Y:1545 T:1355)
                cles::blogのはてなブックマーク数
                benchmark


                [8]ページ先頭

                ©2009-2025 Movatter.jp