如何轮询FTP位置以触发其中的更改?

时间:2013-04-19 08:20:19

标签: java ftp jenkins-plugins

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

2 个答案:

答案 0 :(得分: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 User Guide

  • 提供了FtpDirectory类的示例,该类使用appache commons FTPClient
  • 列出FTP位置中的文件
  • 描述了MyListener可以侦听的事件
  • 如何配置DirectoryPoller

答案 1 :(得分:1)

不确定如何在Jenkins中实现这一目标。如果我只是回答监控FTP位置部分,这里是你如何做到这一点。

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

我还假设您需要某种计时器来进行监控,这可以 也可以使用Java等编程语言来完成。