JobDetail job1 = JobBuilder.newJob(FirstJob.class).withIdentity("job1", "group1").build();

        Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("cronTrigger1", "group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("*/10 * * * * ?")).build();

        Scheduler scheduler1 = new StdSchedulerFactory().getScheduler();
        scheduler1.start();
        scheduler1.scheduleJob(job1, trigger1);

        JobDetail job2 = JobBuilder.newJob(SecondJob.class).withIdentity("job2", "group2").build();

        Trigger trigger2 = TriggerBuilder.newTrigger().withIdentity("cronTrigger2", "group2")
                .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("0/7 * * * * ?"))).build();

        Scheduler scheduler2 = new StdSchedulerFactory().getScheduler();
        scheduler2.start();
        scheduler2.scheduleJob(job2, trigger2);

        Thread.sleep(100000);

        scheduler1.shutdown();
        scheduler2.shutdown();

Estoy tratando de ejecutar una tarea en el Cron cada 5 minutos de una hora, pero no su ejecución en el tiempo. Creo que la expresión de tiempo que está mal.

¿Cómo se establece la expresión de tiempo de 1, 5 minutos del trabajo y un 2 para 1 hora de trabajo?

  • Puede utilizar la línea de los trabajos cron generador de expresiones aquí.
  • por favor, dime donde estoy haciendo mal, porque cuando he fijado que mi trabajo se está Ejecutando, pero he de trabajo del conjunto de 1 por 5 minutos y de trabajo 2 por 1 hora
  • 0 0/5 * 1/1 * ? * por lo tanto, durante 5 minutos debe, como este derecho, por favor espere voy a revisar
  • thanx
InformationsquelleAutor Mhanaz Syed | 2016-11-10

1 Comentario

  1. 9

    De trabajo de 1, 5 minutos, se puede utilizar:

    */5 * * * * ?

    Porque el primer campo es para los minutos. Si se especifica * en este campo, se ejecuta cada minutos. Si se especifica */5 en el 1er campo, se ejecuta cada 5 minutos como se muestra arriba.

    De trabajo 2, 1 hora, se puede utilizar:

    0 */1 * * *

    Porque el segundo campo es por horas. Si se especifica * en este campo, se ejecuta cada hora. Si se especifica */5 en la 2ª campo, se ejecuta cada 5 horas, como se muestra arriba.

    No relacionadas con el cron, pero el código parece ser que falta para pasar de la expresión como a TheLostMind comentario.

    Frase correcta Para la tarea 1:

    Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("cronTrigger1", "group1")
                    .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("*/10 * * * * ?"))).build();

    Espero que ayude.

    • Pero parar después de un tiempo Excute u puede por favor mi tel lo que estoy haciendo mal
    • ¿por qué mi trabajo Parada después de 2 tiempo Excute
    • porque sólo el sueño de 100 segundos y se apaga la programación de tareas.
    • Subproceso.método del sueño aceptar parámetro de milisegundos y sólo se establece 100000, por lo que la igualdad de 100 segundos. Pensar y tratar de no apagar el programador de tareas.
    • gracias @Ye Ganar tengo Solución
    • a continuación, se debe quitar // Subproceso.el sueño(100000); también a la derecha?
    • es hasta usted, pero usted necesita saber cuando usted va a dejar su programador en el código.
    • si usted no quiere parar, esta bien, pero la tarea se ejecute siempre como a su expresión cron
    • Permítanos continuar esta discusión en el chat.

Dejar respuesta

Please enter your comment!
Please enter your name here