当前位置: 首页 > 面试题库 >

如何自动关闭独立的Apache Camel应用程序?

翟单弓
2023-03-14
问题内容

我正在尝试使用Apache
Camel从FTP服务器下载文件并路由文件。但是,很长一段时间内文件仅添加到FTP服务器一次,因此使程序连续运行似乎有些过分热心。相反,我希望有一个cronjob每周运行一次,并处理已添加到服务器的所有新文件。

一旦不再有任何新文件要处理,有什么方法可以让Camel自动关闭?

我当前的main功能如下所示:

public static void main (String[] args) throws Exception {
    org.apache.camel.spring.Main main = new org.apache.camel.spring.Main ();
    main.setApplicationContextUri ("applicationContext.xml");
    main.enableHangupSupport ();
    main.run (args);
}

而有趣的部分applicationContext.xml是:

<camelContext>
    <route>
        <from uri="ftp://ftp.example.com/remoteDir?username=user&amp;password=pass"/>
        <to uri="file:../ftp_data?tempPrefix=."/>
    </route>
</camelContext>

问题答案:

请参阅此常见问题解答,了解如何从路线中停止路线:http : //camel.apache.org/how-can-i-stop-a-route-from-a-
route.html

然后,您可以启用以下选项:sendEmptyMessageWhenIdle =
true,然后在路由中执行消息过滤器或基于内容的路由,并检测空消息,然后停止路由,然后停止该CamelContext。

虽然我也认为这个问题已经讨论过了,所以您也许可以找到其他SO问题或Google等。因为还有其他方法可以做到这一点。



 类似资料:
  • 现在假设我们想要使用 Spark API 写一个独立的应用程序。我们将通过使用 Scala(用 SBT),Java(用 Maven) 和 Python 写一个简单的应用程序来学习。 我们用 Scala 创建一个非常简单的 Spark 应用程序。如此简单,事实上它的名字叫 SimpleApp.scala: /* SimpleApp.scala */ import org.apache.spark.S

  • 我的Spring Boot应用程序不是Web服务器,但它是使用自定义协议的服务器(在本例中使用Camel)。 但是Spring Boot在启动后立即(优雅地)停止。我如何防止这种情况? 我希望应用程序停止,如果Ctrl C或编程。

  • 问题内容: 我正在考虑开发由两部分组成的桌面应用程序: 用户界面(例如Java应用) 后端Node.js服务器 2个部分通过插座连接。不要问为什么我知道这很奇怪。 我将希望能够为客户提供带有安装程序的应用程序。我不希望用户必须自己安装Node.js。 有没有一种方法可以独立安装Node.js服务器,即无需在系统上全局安装Node.js。 对于任何(Windows,Linux,Mac OS X …)

  • 问题内容: 我的Spring Boot应用程序不是Web服务器,而是使用自定义协议的服务器(在这种情况下使用Camel)。 但是Spring Boot在启动后立即(优美地)停止。我该如何预防? 我希望该应用程序按Ctrl + C或以编程方式停止。 问题答案: 从Apache Camel 2.17开始,有一个更干净的答案。引用http://camel.apache.org/spring- boot.

  • 启动 1. 轻触主画面上您想启动的应用程序图标。 显示LiveArea™。 2. 轻触[开始]。 中断/继续 按下PS键即可返回LiveArea™。若要继续,请轻触[继续]。 关闭 1. 按下PS键。 返回LiveArea™。 2. 请由画面右上角将LiveArea™撕下。