Scala アプリケーションでApache Commons FTPClientを使用すると、ローカル マシンでは期待どおりに動作しますが、Heroku で実行すると常にタイムアウトします。関連コード:
val ftp = new FTPClient
ftp.connect(hostname)
val success = ftp.login(username, pw)
if (success) {
ftp.changeWorkingDirectory(path)
//a logging statement here WILL print
val engine = ftp.initiateListParsing(ftp.printWorkingDirectory)
//a logging statement here will NOT print
while (engine.hasNext) {
val files = engine.getNext(5)
//do stuff with files
}
}
いくつかのログを追加することで、クライアントが正常に接続、ログイン、およびディレクトリの変更を行っていることを確認しました。ただし、ファイルの取得を開始しようとすると停止し (上記のページ アクセスまたは でページ解除ftp.listFiles
)、接続タイムアウト例外がスローされます (約 15 分後)。
上記のコードがローカルでは正常に動作するが、Heroku では動作しない理由はありますか?