Comment déclencher une prévue Spring Batch Job?

Je veux être en mesure de commencer mon travail avec un RESTE de contrôleur, puis quand le travail est commencé, il devrait fonctionner sur une base régulière, jusqu'à ce que je l'arrêter de nouveau avec le RESTE.

Donc c'est mon Contrôleur:

@RestController
public class LauncherController {

    @Autowired
    JobLauncher jobLauncher;

    @Autowired
    Job job;

    @RequestMapping("/launch")
    public String launch() throws Exception {
             ...
            jobLauncher.run(job, jobParameters);
    }

C'est une partie du Lot conf:

@Configuration
@EnableBatchProcessing
@EnableScheduling
public class BatchConfiguration {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Scheduled(cron = "0/5 * * * * ?")
    @Bean
    public Job job() {
        return jobBuilderFactory.get("job")
                .incrementer(new RunIdIncrementer())
                .flow(step1())
                .end()
                .build();
    }

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .<Person, Person> chunk(10)
                .reader(reader())
                .processor(processor())
                .writer(writer())
                .build();
    }

J'ai également définir la propriété printemps.lot.travail.activé=false, puisque je ne veux pas l'exécution des travaux dès le Printemps de Démarrage Application démarre.

Maintenant, je peux appeler mon api Rest de la lauch, et l'exécution du travail, mais seulement une fois. Programmateur ne fonctionne pas. Et je ne pouvais pas comprendre qu'il est de notre exactement où je dois définir mon @Prévue Annotation..

donc en résumé vous voulez démarrer et d'arrêter les travaux à l'aide de repos contrôleur de demande.
.., qui devrait alors fonctionner à nouveau et à nouveau basé sur mon planificateur de notation.
ok, j'ai créé une application il y a quelques temps à l'aide de quartz de planification des travaux à l'extérieur. Si j'ai le temps, je vais partager le code comme une réponse.
je ne pense pas que nous avons besoin de quartz.. je voudrais juste savoir où/comment je dois définir mon @Prévue annotation. voir: stackoverflow.com/questions/4385719/...

OriginalL'auteur akcasoy | 2017-10-27