Как я могу управлять использованием общего ресурса, используемого несколькими программами Perl? - PullRequest
1 голос
/ 31 июля 2009

Я ищу хороший способ управления доступом к внешнему FTP-серверу из разных программ на одном сервере. В настоящее время я работаю с файлом блокировки, так что только один процесс может одновременно использовать ftp-сервер. Что было бы хорошим способом разрешить 2-3 параллельным процессам одновременно обращаться к серверу ftp. К сожалению, провайдер не разрешает больше сеансов и блокирует мою учетную запись на день, если слишком много процессов обращаются к их серверу. Используемые платформы - Solaris и Linux - весь доступ по ftp инкапсулирован в одну библиотеку, поэтому мне нужно изменить только одну функцию. Было бы хорошо, если есть что-то на CPAN.

Ответы [ 2 ]

4 голосов
/ 31 июля 2009

Я бы заглянул в perlipc (1) для семафоров SystemV или таких модулей, как POSIX :: RT :: Semaphore для семафоров posix. Я бы создал семафор с количеством ресурсов 2-3, а затем в другом процессе попытался бы получить семафор.

1 голос
/ 31 июля 2009

Вместо того, чтобы заставлять кучу программ ждать в очереди, не могли бы вы создать одну локальную программу, которая обрабатывает все удаленные соединения, пока локальные программы разговаривают с ней? Вы эффективно создаете прокси и отталкиваете эту сложность от своих программ, чтобы вам не приходилось сталкиваться с ним в каждой программе.

Я не знаю других ограничений вашей проблемы, но у меня это сработало в аналогичных вопросах.

...