1 votos

¿Mirar carpeta que solo procesa un elemento a la vez?

Necesito configurar una carpeta de inspección que se ejecuta una secuencia de comandos en cada elemento añadido. Pero el guión podría tardar 10 minutos o más para que el proceso de un solo elemento.

Lo que he hecho es poner este código en la parte superior de mi guión que mantiene mirando la carpeta y, a continuación, actúa cuando algo se agrega:

set watchFolderAlias to (POSIX file watchFolder as alias)
set r to {}
repeat
    tell application "Finder" to set r to ¬
        (sort (get files of watchFolderAlias whose kind is "alias") ¬
            by creation date)
    if (count of r) ≠ 0 then
        do(first item of r as alias)
    end if
    delay 5
end repeat

on do(x)
   (* do 10 minutes of stuff with x *)
end do

... y luego me siga funcionando. Pero esto es incómodo y torpe.

Pero si puedo adjuntar la do() cosas como una carpeta en la acción, se pondrá en marcha una nueva instancia tan pronto como se agrega un elemento ... ¿verdad?

Me estoy perdiendo una solución más elegante?

(Para aclarar: Si adjunta una carpeta de action script en una carpeta, que el guión es lanzado varias veces, una vez para cada momento de agregar elementos a la carpeta, independientemente de si otra instancia de dicho script se está ejecutando. Esto es lo que estoy tratando de evitar. Por ejemplo, si 10 artículos cae dentro de la carpeta de inspección, y luego, mientras los primeros 10 elementos aún están siendo procesados, otro de los 5 elementos se quitan, se iniciará una segunda instancia de la secuencia de comandos.)

La única otra cosa que se me ocurre es la de mantener un "status" del archivo que va a ser puesto a "ocupado" por el guión, y "inactivo" cuando se realiza el procesamiento, por lo que las otras instancias de la secuencia de comandos se espere a que el estado "inactivo" ... pero esto también es torpe.

1voto

moodforaday Puntos 2633

Trate de Hazel https://www.noodlesoft.com

No he tenido ninguna procesos que se ejecutan en ese tiempo, pero en mi experiencia Hazel siempre parece funcionar de forma secuencial en los archivos, y no se inicia un nuevo proceso hasta que el viejo está hecho.

Es una valiosa aplicación de Mac, de la OMI. Yo lo uso exclusivamente en vez de Acciones De Carpeta. Es una aplicación de pago, pero no es gratis, completa demo disponible. El desarrollador también es muy útil la app y se encuentra en buen estado. Muy recomendable.

Creo que su única alternativa es un archivo de bloqueo, que es torpe, como usted ha mencionado.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X