2016-08-05 45 views
0

Ich benutze den Int-sftp: Inbound-Channel-Adapter, um Dateien aus dem Remote-Verzeichnis herunterzuladen.Spring-Integration: int-sftp: Inbound-Channel-Adapter: So überprüfen Sie, ob der Quellordner leer ist

Ich möchte überprüfen, ob das Remote-Verzeichnis leer ist, also nach einer Zeitüberschreitung, ich stoppe Download-und Shutdown-Anwendung.

So überprüfen, ob das Remote-Verzeichnis leer ist und wie man ein Timeout verwendet?

mein Quellcode:

<int-sftp:inbound-channel-adapter id="sftpInbondAdapter" 
auto-startup="true" channel="receiveChannel" session-factory="sftpSessionFactory" 
local-directory="file:${directory.files.local}" remote-directory="${directory.files.remote}" 
auto-create-local-directory="true" delete-remote-files="true" 
filename-pattern="*.txt" > 
<int:poller 
max-messages-per-poll="-1" error-channel="sftp.in.error.channel"/> 

</int-sftp:inbound-channel-adapter> 

Dank

Antwort

0

Es gibt derzeit keinen Hinweis darauf, wenn der Remote-Ordner leer ist.

Sie finden es möglicherweise einfacher, das Outbound-Gateway zu verwenden.

Sie können einen konfigurieren, um den Befehl ls zum Auflisten der Dateien zu verwenden, und einen anderen zu get (oder mget) die Dateien.

+0

Ich Shouls mit zwei Outbound-Gateway, eines für jeden Befehl? – NAZEHA

+0

Kann ich Outbound-Gateway mit dem Befehl "ls" verwenden, um zu überprüfen, ob das Verzeichnis leer ist, und dann Dateien mit sftp Inbound-Adapter herunterladen? – NAZEHA

+0

Jedes Gateway behandelt einen einzelnen Befehl [siehe Dokumentation] (http://docs.spring.io/spring-integration/reference/html/sftp.html#sftp-outbound-gateway). Ja, setze 'auto-startup' auf 'false' und basierend auf dem Inhalt des Verzeichnisses kannst du' 'den Adapter starten, indem du einen Steuerbus verwendest oder direkt einen Verweis darauf erhältst. –