¿Cómo puedo administrar el uso de un recurso compartido utilizado por varios programas de Perl?

StackOverflow https://stackoverflow.com/questions/1210885

  •  06-07-2019
  •  | 
  •  

Pregunta

Estoy buscando una buena manera de administrar el acceso a un servidor FTP externo desde varios programas en un solo servidor. Actualmente estoy trabajando con un archivo de bloqueo, por lo que solo un proceso puede usar el servidor ftp a la vez. Cuál sería una buena manera de permitir que 2-3 procesos paralelos accedan al servidor ftp simultáneamente. Lamentablemente, el proveedor no permite más sesiones y bloquea mi cuenta durante un día si demasiados procesos acceden a su servidor. Las plataformas utilizadas son Solaris y Linux: todo el acceso ftp está encapsulado en una sola biblioteca, por lo que solo hay una función que necesito cambiar. Sería bueno si hay algo en CPAN.

¿Fue útil?

Solución

Buscaría en perlipc (1) para semáforos o módulos de SystemV como POSIX :: RT :: Semaphore para semáforos posix. Crearía un semáforo con un recuento de recursos de 2-3, y luego en el proceso diferente, trataría de obtener el semáforo.

Otros consejos

En lugar de hacer que un montón de programas esperen en línea, ¿podría crear un programa local que maneje toda la comunicación remota mientras los programas locales le hablan? Cree efectivamente un proxy y aleje esa complejidad de sus programas para no tener que lidiar con él en todos los programas.

No conozco las otras restricciones sobre su problema, pero esto me ha funcionado en problemas similares.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top