3

我正在尝试轮询 ftp 位置。我正在使用 Jenkins 进行项目的持续集成。因此,如果有人可以建议我使用 Jenkins 中的插件或任何其他方法来监视 FTP 位置的变化,那将会很有帮助。我需要监控 FTP 位置的变化,当发现​​变化时,我必须建立另一个工作。

4

2 回答 2

6

不确定如何使用 Jenkins,但如果您想使用纯 java 监控 FTP 位置的更改(即在目录中添加/删除/修改文件时接收通知),那么以下库可以帮助您进行实际轮询/通知机制:https ://github.com/drapostolos/rdp4j (Java 的远程目录轮询器)。

API的简单使用示例:

package example

import java.util.concurrent.TimeUnit;
import com.github.drapostolos.rdp4j.DirectoryPoller;
import com.github.drapostolos.rdp4j.spi.PolledDirectory;

public class FtpExample {

    public static void main(String[] args) throws Exception {
        String host = "ftp.mozilla.org";
        String workingDirectory = "pub/addons";
        String username = "anonymous";
        String password = "anonymous";
        PolledDirectory polledDirectory = new FtpDirectory(host, workingDirectory, username, password);

        DirectoryPoller dp = DirectoryPoller.newBuilder()
        .addPolledDirectory(polledDirectory)
        .addListener(new MyListener())
        .setPollingInterval(10, TimeUnit.MINUTES)
        .start();

        TimeUnit.HOURS.sleep(2);

        dp.stop();
    }
}

RDP4J用户指南

  • 提供了一个FtpDirectory使用 appache commons 列出 FTP 位置中的文件的类示例FTPClient
  • 描述了MyListener可以监听的事件
  • 如何配置DirectoryPoller
于 2013-10-06T11:23:34.520 回答
1

不确定如何在 Jenkins 中实现这一点。如果我只是回答监控 FTP 位置部分,您可以这样做。

确定要使用的编程语言。(Java、.NET 等)。编写代码来监控 FTP 服务器(假设它是您要监控的特定远程目录)并执行需要执行的作业。监视和执行作业都需要用编程语言完成。

我还假设您需要某种计时器来进行监视,这也可以使用诸如 Java 之类的编程语言来完成。

于 2013-04-20T00:20:25.097 回答