実装はPERLで
メッセージキューにはPOE::Component::MessageQueue
ジョブキューにはSwarmage/TheSchwartz/Gearmanを検討してます。
(調べた限りでは。他になんか良いのがあれば教えてほしいです)
個人的な理解として、
メッセージキューは
メッセージの送信→キューに保存→メッセージを受信
ジョブキューは
ジョブの登録→キュー保存→なんらかの処理を実行
と考えていて、最後の処理が文字列でくるのかプロシージャで実行までするかの違いだと思ってます。
メッセージキューの最後がechoのコマンドと考えると、
どちらも同じように見えるため混乱してます。
利用用途として明確な違いがあるのか、
根本的に理解が間違っているのか
結局は同じだよとか
そのあたりを教えて頂ければと思います。
よろしくお願いいたします。
明確な違いは「格納するモノ」だと思います。
「メッセージ」とは「起こったことをプロセスに知らせるもの」で
「ジョブ」とは「実行すべき処理内容」です。
メッセージは単なる数値や文字列でも構いません。
「どのようなことが」「どのような状況で」起こったかを
プロセスが知ることができれば良いのです。
対してジョブは、それ自身が何をすべきか知っている必要があります。
つまり、何らかのオブジェクト(又はコードリファレンス等)であるべきです。
結局のところキューはFIFOに分類される「データの扱い型」に過ぎないですし、
メッセージキューとジョブキューの何が違うかということであれば
「用途」
に尽きると思います。
とてもわかりやすい回答ありがとうございます!
違いがはっきりしてもやもやしてのがとれました。
それぞれのライブラリを使うときは「格納するもの」を意識して使いたいと思います。