从Azure函数连接到FTP时如何避免TimeoutError错误

时间:2017-10-11 09:13:39

标签: python azure ftp azure-functions ftplib

我使用包ftplib编写了一个python模块,用于从我的数据提供程序中检索执行以下操作的数据:

1)使用STOR命令在FTP服务器上传文本文件。

2)每分钟检索一次FTP服务器中的完整文件列表    目录。如果此列表满足某些条件,请转到    下一步。否则重复此步骤。

3)使用RETR命令从FTP服务器目录下载所有文件。

我在虚拟机中运行上一个过程已有几个月没有任何问题。我最近决定在不同的云环境(Azure功能 - 应用服务计划)中移动流程以降低维护成本,但我已经开始在步骤3中获得严重的错误消息(步骤1)和2完美的工作)。

TimeoutError: [WinError 10060] A connection attempt failed because the 
connected party did not properly respond after a period of time, or 
established connection failed because connected host has failed to 
respond

ATTEMPTS:

  • 只有在运行第2步的时间超过15分钟时才会发生错误。因此,问题不应与关闭的端口/防火墙有关。
  • 我已经与数据提供商进行了验证,他们告诉我问题不在他们这边,所以问题与天蓝色功能有关。
  • 在第2步中,我尝试向FTP发送NOOP消息,并每分钟从FTP下载一个小文件以保持连接处于活动状态。但是,我在一段时间后或跳到第3步时仍会收到相同的错误消息。
  • 当我使用有效的FTP连接时,仍然会收到(不同的)错误消息:ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
  • 关闭并重新打开步骤2的每次迭代的FTP连接。

我非常强烈地感觉即使具有应用服务计划的Azure功能不应该具有消耗计划的10分钟超时,Azure中幕后的某些内容仍然不像长时间运行的进程( ~30分钟)。

0 个答案:

没有答案