【发布时间】:2015-10-04 15:18:17
【问题描述】:
我是RabbitMQ 的新手,浏览了一些教程。所有样本都是监听消息的无限循环。很像套接字的作用。我的问题是,为什么我们不能在某个文件夹中放置一个简单的 .NET DLL,当收到与我的 dll 相关的消息时,RabbitMQ 应该创建一个 appdomain,添加该 DLL,调用正确的方法并销毁 appdomain?我们不能这样做吗?
【问题讨论】:
我是RabbitMQ 的新手,浏览了一些教程。所有样本都是监听消息的无限循环。很像套接字的作用。我的问题是,为什么我们不能在某个文件夹中放置一个简单的 .NET DLL,当收到与我的 dll 相关的消息时,RabbitMQ 应该创建一个 appdomain,添加该 DLL,调用正确的方法并销毁 appdomain?我们不能这样做吗?
【问题讨论】:
RabbitMQ 与 .NET 无关,因此 RabbitmQ 不能“创建 appdomain 并在其中添加 dll”。要接收来自 rabbit 服务的消息,您需要以某种方式连接到它。之后,您必须保持该连接才能接收传入消息。因此,至少您已经使用一些代码(例如使用官方 .NET 客户端)连接到 rabbit 服务,并且您已经保持连接。现在你收到了一条消息。当然,你可以创建新的应用程序域,在那里加载 dll,调用 dll 中的某些方法并销毁应用程序域,但你可以想象它是多么的丑陋和低效。您已经拥有该消息并且可以处理它,那么为什么还要加载其他 dll 呢?更不用说兔子经常被用于高速消息处理,而你的方法会扼杀所有性能(没有任何理由)。总而言之,您可以编写自己的 .NET 应用程序来执行您所描述的操作,但这不是“简单”的方式。
【讨论】: