2009-07-31 44 views
1

我正在尋找一種管理從單個服務器上的各種程序訪問外部FTP服務器的好方法。 目前我正在使用鎖文件,以便一次只能有一個進程使用ftp服務器。什麼是允許2-3個並行進程同時訪問ftp服務器的好方法。不幸的是,如果有太多的進程訪問他們的服務器,提供者不允許更多的會話並鎖定我的賬戶一天。 使用的平臺是Solaris和Linux - 所有ftp訪問都封裝在一個庫中,因此只有1個功能需要更改。如果CPAN上有東西,會很好。如何管理幾個Perl程序使用的共享資源的使用?

回答

4

我會研究perlipc(1)的SystemV信號量或像posix :: RT :: Semaphore模塊的posix信號量。我會創建一個資源計數爲2-3的信號量,然後在不同的過程中嘗試獲取信號量。

+0

偉大的建議 - 我已經安裝在兩個平臺上,並已成功在Solaris上進行了測試... – weismat 2009-07-31 09:43:26

1

而不是讓一堆程序排隊等候,你可以創建一個本地程序來處理所有的遠程通信,而本地程序談到它?您可以有效地創建代理,並將這種複雜性從您的程序中解放出來,因此您無需在每個程序中處理它。

我不知道你的問題的其他約束,但這對我在類似問題上的工作。

+0

不幸的是,這不會工作 - 創建的文件定期更新,我想避免發送不完整的文件,因此來電者需要知道什麼時候ftp完成。 (它需要雙面協調)。 – weismat 2009-08-01 06:44:00

相關問題