2009-07-31 41 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

相关问题