我正在开发一个需要在单独的线程中执行一段逻辑的Camel路由。
基本上,我有一个缓冲区,我从InputStream
和OutputStream
得到。我想在一个单独的线程中写入OutputStream
,并将InputStream
设置为正文并立即返回。我正在研究AsyncProcessor
,但它似乎提供了一个回调来完成时通知,这留下了一个异步运行的选项,但没有实际机制这样做。我当然可以拥有自己的ExecutorService
并继续使用它,但可能是这个巨大的机器是Camel没有内置设施吗?关于Camel网站上可用主题的吝啬文本几乎没有说明如何应该实现异步执行。
更新:我记录了我最终做的事情here。
答案 0 :(得分:2)
是的,它是一个回调,你如何称呼它取决于组件开发人员,通常是Camel组件利用的第三方库已经有一些异步引擎,这只是一个集成问题。
如果您在没有此类异步引擎的情况下构建自己的组件,则可以使用线程池。 CamelContext中有一个执行程序服务管理器api,它可以是一个好主意,因为它有助于管理线程池并在运行时公开有关它的详细信息。
您可以在此处找到更多详细信息:
如果您有Camel in Action手册,那么第10章将介绍这一点,第10.6节介绍如何使用异步处理编写自定义组件。