如何最好地将文件发布到多个sftp目标

时间:2015-08-27 11:12:49

标签: java spring design-patterns spring-integration jsch

我在spring sftp文件中配置了以下application-context bean ID。它定义了两个sftp目标,我的应用程序将不同类型的文件发送到:

<bean id="targetA" 

class="com.sftp.Sender">
        <constructor-arg value="${A.host}"/>
        <constructor-arg value="${A.username}"/>
        <constructor-arg value="${A.remoteDir}"/>
        <constructor-arg value="${A.notificationDir}"/>
    </bean>

    <bean id="targetB" class="com.sftp.Sender">
        <constructor-arg value="${B.host}"/>
        <constructor-arg value="${B.username}"/>
        <constructor-arg value="${B.remoteDir}"/>
    </bean>

我的main课程看起来像这样:

public class Main {

    Occ occ= ctx.getBean("occ", Occ.class);

    public static void main(String[] args) {
            if (args != null && args.length >= 1) {
                String target = args[0];
                occ.rePublish(target);

            } else {
                    String target = "Both";
                   orc.processReports(target);

                } 
}

我的Occ课程类似:

public class Occ {

                 public void rePublish(String target) {
                     processReports(target);
                }

                public void processReports(String target) {
                    // determines who the target is and prepare the appropriate 
                    // file to send to that target

                    if (target.equal("Both")) {
                        // prepare both target A and B files 
                    }
                }

            }

通常,当程序执行时,它应该为目标A和目标B准备两组文件。在某些情况下,一次传输可能会失败,我希望能够为该目标准备和分发文件。我只能考虑在arguments方法中将重新发送目标作为main传递。但这是最好的方法吗?你有什么想法,你会怎么做?我可以用其他更好的方式重构上面的代码吗?

0 个答案:

没有答案