Pregunta

Cron En Google App Engine tiene sintaxis legible humana para la programación de empleo de Cron.

https://developers.google.com/appengine/docs/Python / Config / Cron # the_schedule_format

¿Cómo implito una funcionalidad similar en mi solicitud, donde el uso ingrese programado en humanos? ¿Formato y programa legible analizar y almacenar el valor real?

Editar: Creo que están utilizando la biblioteca antlr3, pero no pude descubrir cómo lo están usando.

¿Fue útil?

Solución

OK, en este caso hay dos puntos que necesita para investigar.

Primera Antlr es lo que le da su analizador para analizar los formatos de lectura en inglés / humano en su programa como un flujo de fichas.De esta cadena, entonces determinará el significado, como:

run backup every 2 days

que se convertiría en un flujo de tokens tales como:

<command_type> := run
<command_to_run> := backup
<time_frame_times> := every
<digit> := 2
<time_frame_modifier> := days

desde aquí, entonces determinará el significado de la oración utilizando algún tipo de máquina de estado que se podría escribir (forma simplificada) como:

if token == command_type:
    switch( token.val )
        case "run":
            state = run
            program = tokens.pop().val
if token == time_frame_times:
    switch( token.val )
        case "every":
            time_frame_state = repeat_indefinitely
if token == time_frame_modifier:
    switch( token.val )
        case "days":
            time_frame_modifier = every_N_days
if token == digit:
    switch( time_Frame_modifier )
        case every_N_days:
            time_frame_modifier_value = token.val

Algo así sería suficiente para analizar la cadena en sus valores requeridos.

La segunda parte sería conectar esto en cron en sí mismo o escribir su propio programador dentro de su programa, que creo que es más a lo largo de las líneas de su caso de uso.

antlr python: http://www.antlr.org/wiki/display/ Antlr3 / python + runtime

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