Mule排队 - 异步流队列与VM队列

时间:2015-05-11 16:58:00

标签: mule message-queue

在学习和使用Mule时,我无法确定queued-asynchronous flow queueVM queue之间是否存在差异。

我的问题是,它们是相同的队列(在文档中只有不同的名称)还是不同的队列?

在一个具体的例子中:

function checkdir($dir) {
    $file_array = array();
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $key => $object) {
            if ($object != "." && $object != "..") {
                if (filetype($dir."/".$object) == "dir") {
                    // folder loop , try find files again
                    $file_array = array_merge($file_array, checkdir($dir."/".$object));
                    //$file_array[] = 'dir';
                } else {
                    $file_array[] = $dir."/".$object;
                    //echo $dir."/".$object.'<br>';
                }
            }
        }// end foreach
    //reset($objects);
    }
    return $file_array;
}

VM inbound-endpoint是否从一个队列接收消息,并且该流还有另一个队列来接收来自入站端点的消息?或者他们是相同的SEDA队列?

2 个答案:

答案 0 :(得分:0)

这是两个非常不同的概念,一个是基于流的处理方式,另一个是轻量级排队机制。 VM是一种传输,它具有持久的排队功能以及事务。

请参阅(了解流程执行模型的最后一个链接):

答案 1 :(得分:0)

添加您展示的具体示例的一些细节。

您无需明确指定处理策略,Mule会根据入站端点的交换模式选择默认处理策略。因此,当您具有非事务单向端点时,处理策略将排队异步。

enter image description here

  

VM inbound-endpoint是否接收来自一个队列的消息,以及   flow有另一个队列来接收来自的消息   入站,终点?或者他们是相同的SEDA队列?

要接收消息,Mule将使用专用于VM连接器的线程池(接收器线程绑定到传输)。收到消息后,将使用流程线程池中的线程处理该消息。 (如果我能得到证实或纠正,那将会很棒)。

(大部分信息来自早期答案中发布的链接)