Cron: Programador de tareas AMS al estilo UNIX

Aquí pueden poner todos los programas y utilidades que hayan creado con AMS.
Hola chicos. Como parte de otro programa que estoy haciendo, he tenido que diseñar un sistema de programación de tareas al estilo Cron de Unix.

Imagen

He extraido esta parte de la aplicacion completa ya que me parece muy util y didactico.

El sistema funciona basicamente con 2 funciones que van includos en el proyecto como globales, nibble y checkcron.

El funcionamiento es llamar a checkcron(cadena cron) en un timer cada segundo, una llamada por cada linea de cronjob.

La unica diferencia con el formato cron de UNIX es que ademas implemento segundos en la cadena, unix solo gestiona minutos.

El formato es el siguiente:

[seg] [minuto] [hora] [dia] [mes] [dia de la semana] [valor]
donde:
[seg]: (0-59)
[minuto]: (0-59)
[hora]: (0-23)
[dia]: (0-31)
[mes]: (1-12)
[dia de la semana]: (0-7) (0=domingo, 1=lunes, 2=martes...)

[valor]: es un string, normalmente pongo aqui el nombre de una funcion que es llamada con pcall (descomentar en la funcion checkcron())
En el ejemplo se comporta evaluando el codigo fuente de la variable codigo[valor] puediendo ser valor un numero

Se pueden ademas especificar combinaciones usando "," por ejemplo 10,20

Tambien se pueden definir rangos usando "-" por ejemplo 10-20 (genera 10,11,12,...,20)

Ademas se pueden combinar los 2 sistemas por ejemplo 1,10,20-30,40,50

El caracter * especifica que ese valor se cumple "SIEMPRE"

Mirar el screenshot para ver ejemplos

Descargar: http://www.zshare.net/download/83993009c97de581/
Recuerda que el ejemplo hay que darle al boton cron para que funcione
Muy bueno esto amigo haber si le logro entender código ya que yo soy mas novato de lo que parece jejejje, pero le echare una buena leída y te comento. :hypno: :hypno:
Cron parece muy complejo pero es simple e intuitivo

Imagen

Mi implementación interactua con codigo lua para ejecutar acciones, con la salvedad que ademas he añadido opcion para manejar segundos.

Proximas versiones tendran mas implementaciones como el uso de los caracteres /,!,$,%,? pero en este acercamiento ya obtenemos una funcionalidad suficiente para cualquier proyecto que requiera de manejo de tiempos

Piensa en esto como un timer que puedes programar en cualquier parte de la linea temporal

Mi ejemplo es un tanto criptico pero creo que facil de usar si copias las 2 funciones globales que te indico y evaluas cada crontab con la funcion checkcron() en un timer cada 1s

Este cacharro forma parte de una suite de programación que ando haciendo para el control de aparatos reales con AMS, en su proyecto original usa sqlite, pero para extraerlo he hecho un injerto, por lo que puede resultar un tanto complicado de entender, pero creo que es bastante simple.

Esta suite de programación incluye bastantes cosas que no se habian hecho hasta ahora, ire pubnlicando trozos conforme valla depurando

saludos
uff si ya lo mire una parte del código y si no se lee tan complicado pero tengo un problemon no tengo este plugin SCINTILLA y por ello no lo puedo correr no se si lo puedes publicar para a si poder ejecutarlo claro si no es mucha molestia.
Gracias makina
amos a echarle un ojo seguro que esta to tocho!
No lo esperaba, pero parece ser mucho mas potente y fiable de lo que esperaba, he hecho un test con el abuso de 500 tareas simultaneas y con unos resultados excelentes en rendimiento y precisión, va como un reloj y esperaba una carga mucho mayor, pero apenas se nota.

En el test el 50% de las reglas eran altamente complejas, con distintas combinaciones y muchos factores, sin embargo el funcionamiento es correctisimo.

Os dejo el exe compilado http://www.zshare.net/download/84027643a1677b09/


Una cosa mas, este programa usa string.delimitedtostring() ya se que no proviene del api original, ¿ceone, donde coño estan estos archivos? cada vez que lo quiero hacer funcionar, tengo que instalar un powerpack
ajajajajaja... que grande... aver si luego hablamos y te comento!
El ejemplo ha caido pablo , me interesaría echarle un vistazo ;)
Creo que en el ultimo pack de ams lo añadi como plantilla... pero bueno aquí tienes..

http://www.multiupload.com/R8II5I8TES
Gracias compi.
muy bueno este topo de programa... muchas gracias