2011-06-23 10 views
15

estoy usando Quartz.NET, y mi programador se basa en gran medida en el uso de la expresión cron - tales como los que se detallan en el siguiente enlace:CronExpressions: ¿alguna biblioteca que exista para generarlas/convertirlas a una forma legible para humanos?

http://quartznet.sourceforge.net/tutorial/lesson_6.html

Idealmente, me gustan los 2 escenarios para ser hecho posible (el primero es probablemente mucho más difícil, y menos probable que exista algo por él)

1: la capacidad del usuario para construir una expresión cron en un formulario ASP.NET, donde eligen los minutos, horas, días, etc.

2: La capacidad de convertir un cro n expresión en una cadena corta, tales como 'Cada} {x minutos el viernes' o 'en {x} del reloj o en el último día de cada mes'

he empezado a escribir mis propias versiones de estos, pero es una tarea muy fuerte y me encantaría descubrir que hay una biblioteca por ahí, o incluso tener algún consejo y consejo sobre esto, chicos.

Nota: Si no hay nada para esto y tengo (relativamente) éxito en la creación del código, con mucho gusto compartiré la fuente si alguien lo quiere.

+1

Publique su versión de la biblioteca. Me será útil. Gracias –

Respuesta

1

Alguien preguntó hace las preguntas same pocos meses.
Nunca he podido encontrar algo así.
Terminé haciendo mi propio "configurador" pero mis requisitos eran bastante simples.

23

Escribí una biblioteca de C# que hace justamente esto. Se llama cron-expression-descriptor. https://github.com/bradyholt/cron-expression-descriptor.

+0

amaba tu trabajo @ Brady :-) Gracias por traerme! –

+3

¿Sabes si hay una herramienta para hacer lo opuesto? Ingrese * "A las 11:30 AM, de lunes a viernes" * y haga que regrese: ** "30 11 * * 1-5" ** –

7

Usando la última Quartz.NET (2.1 al momento de escribir esto) puede obtener la expresión de Cron utilizando CronScheduleBuilder.

Obtener la expresión para trabajos diarios:

var t = CronScheduleBuilder.DailyAtHourAndMinute(10, 0).Build() as CronTriggerImpl; 
Console.WriteLine(t.CronExpressionString);// This is the actual Cron 
Console.WriteLine(t.GetExpressionSummary()); // This is the description of that Cron 
+0

@Gracias a Jonas por la información. –

+0

Este sitio web se creó usando Quartz: [link] (http://www.cronmaker.com), podría ser un ejemplo útil para quién quiere construir expresiones a partir de GUI legible por humanos. –

3

Terminé usando este plugin jQuery que proporciona una interfaz agradable y luego usando un campo oculto para guardar esta a una base de datos en .NET/C#.

http://shawnchin.github.com/jquery-cron/

Funciona bastante bien para mí. Puede que necesites comprobar que estás poniendo unos segundos al frente de la cadena en "0", aunque si usas quartz.net como yo, ya que este complemento no admite segundos.

Cuestiones relacionadas