Página 1 de 1

Cron: Programador de tareas AMS al estilo UNIX

Publicado: 16 Dic 2010 20:11
por Pabloko
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

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 16 Dic 2010 20:44
por Agotaras123
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:

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 16 Dic 2010 21:06
por Pabloko
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

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 16 Dic 2010 21:12
por Agotaras123
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.

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 16 Dic 2010 23:44
por rafaxplayer
Gracias makina

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 17 Dic 2010 12:40
por Ceone
amos a echarle un ojo seguro que esta to tocho!

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 17 Dic 2010 19:14
por Pabloko
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

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 20 Dic 2010 17:13
por Ceone
ajajajajaja... que grande... aver si luego hablamos y te comento!

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 11 Feb 2011 08:33
por rafaxplayer
El ejemplo ha caido pablo , me interesaría echarle un vistazo ;)

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 11 Feb 2011 14:01
por Ceone
Creo que en el ultimo pack de ams lo añadi como plantilla... pero bueno aquí tienes..

http://www.multiupload.com/R8II5I8TES

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 11 Feb 2011 16:12
por rafaxplayer
Gracias compi.

Re: Cron: Programador de tareas AMS al estilo UNIX

Publicado: 12 Oct 2011 20:55
por mensajero1
muy bueno este topo de programa... muchas gracias