在Camel中实现异步处理器时,是否需要创建自己的ExecutorService

时间:2014-09-08 21:25:41

标签: asynchronous apache-camel

我正在开发一个需要在单独的线程中执行一段逻辑的Camel路由。 基本上,我有一个缓冲区,我从InputStreamOutputStream得到。我想在一个单独的线程中写入OutputStream,并将InputStream设置为正文并立即返回。我正在研究AsyncProcessor,但它似乎提供了一个回调来完成时通知,这留下了一个异步运行的选项,但没有实际机制这样做。我当然可以拥有自己的ExecutorService并继续使用它,但可能是这个巨大的机器是Camel没有内置设施吗?关于Camel网站上可用主题的吝啬文本几乎没有说明如何应该实现异步执行。

更新:我记录了我最终做的事情here

1 个答案:

答案 0 :(得分:2)

是的,它是一个回调,你如何称呼它取决于组件开发人员,通常是Camel组件利用的第三方库已经有一些异步引擎,这只是一个集成问题。

如果您在没有此类异步引擎的情况下构建自己的组件,则可以使用线程池。 CamelContext中有一个执行程序服务管理器api,它可以是一个好主意,因为它有助于管理线程池并在运行时公开有关它的详细信息。

您可以在此处找到更多详细信息:

如果您有Camel in Action手册,那么第10章将介绍这一点,第10.6节介绍如何使用异步处理编写自定义组件。