Dynamic Job Scheduling using Spring 3



我开发了一个网络爬虫,它以StartURL作为种子参数进行爬行。如果可能的话,我希望允许用户根据作业来安排此任务。

目前我正在使用Spring 3.1.2Hibernate。我需要给用户一个接收cronJob参数的前端,并在此基础上运行爬网程序。可以用弹簧做吗。

我读了一些关于Quartz的文章,但SO或其他网站上的文章一点也不清楚,或者它们不完整,以便完全理解如何在春季实现调度器。

我知道有三个组成部分

  1. 日程表传真
  2. 触发器
  3. 作业(要运行的服务)

我希望有人能指引我正确的方向。

Quartz调度程序正是适合该作业的工具。出于某种原因,几乎所有的教程都专注于在启动时用XML定义作业,而Quartz完全能够在运行时调度作业。

您可以也应该利用Spring来启动Quartz Scheduler,但之后您可以直接从代码中与它交互。以下是文档中的一个简单示例:

JobDetail job = newJob(SimpleJob.class)
    .withIdentity("job1", "group1")
    .build();
CronTrigger trigger = newTrigger()
    .withIdentity("trigger1", "group1")
    .withSchedule(cronSchedule("0/20 * * * * ?"))
    .build();
scheduler.scheduleJob(job, trigger);

在这里,您定义了一个作业(要运行的Java代码)、触发器[何时运行,用户可以提供任何有效的CRON表达式],并通过调度将其全部封装。调度器实例可以由Spring注入。弹簧也将处理适当的关闭。

最新更新