簡體   English   中英

如何從功能管理與sftp的並發連接

[英]how to manage concurrent connections to sftp from function

我們如何管理並發連接,也許通過將文件批處理到同一連接中來進行管理?

我正在創建一個由新blob觸發的azure函數(可以將其更改為簡單的計時器觸發)。 一個Blob的示例為:

{
"server":"sftp.mysftpserver.com",
"credentials":"topsecret",
"body":"This text will be uploaded to the sftp server above"
}

該函數將登錄到服務器,並在body發送有效負載。

我們如何限制正在啟動到同一服務器的連接數?

我們可能有500個blob都觸發了該函數,而該blob又打開了與sftp.mysftpserver.com 500個連接。

同時可能只有2個Blob正在啟動到sftp.otherserver.net連接。

如果沒有有關具體實現的更多信息,我只能提供一般性建議。 假設您正在使用某種FTP客戶端,則可以使用該客戶端靜態實例在Function實例中共享它。 如果吞吐量那么高,那么Functions服務將擴展到多個實例,但是假設您在使用計划中,則最大值將為200 除非存在巨大的瓶頸,否則在擴展達到200個實例之前,可能會清除500個文檔的峰值。

例如,您將執行以下操作:

// Create a single, static SftpClient
private static SftpClient client = new sftpClient(endpoint, user, pass);

public static async Task Run(string input)
{
    var response = await sftpClient.SendAsync("filename.txt", input);
}

如果您不使用默認情況下可以執行此操作的SFTP庫,則可以創建一個靜態助手類來處理創建客戶端的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM