1

クォーツスケジューラを使用しています。また、問題なく通常の方法でジョブをスケジュールできます。

コード

public class QuartzTest implements Job {

    public void execute(JobExecutionContext context)
            throws JobExecutionException {
                System.out.println("Hello Quartz on " + new Date());
            }

    public static Scheduler scheduler;

    public void scheduleLoad(String time, int jobNo) {
        try {
            // Transform user input into a date
            SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy:HH:mm:ss");
            Date scheduleDate = dateFormat.parse(time);

            // Grab the Scheduler instance from the Factory 
            //Scheduler 
            scheduler = StdSchedulerFactory.getDefaultScheduler();

            // Listener
            //scheduler.getListenerManager().addJobListener(new SimpleJobListener());

            // and start it if it is shut down
            if(!scheduler.isStarted())
                scheduler.start();

            // Define a job and tie it to a class
            JobDetail job = newJob(QuartzTest.class)
                    .withIdentity("job"+jobNo)
                    .build();

            // Define trigger 
            SimpleTrigger trigger = (SimpleTrigger) newTrigger()
                    .startAt(scheduleDate)
                    .forJob("job"+jobNo)
                    .build();

            // Schedule job using trigger
            scheduler.scheduleJob(job, trigger);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws SchedulerException {
        String runTime = "04/15/2013:17:37:10";
        QuartzTest quartz = new QuartzTest();
        quartz.scheduleLoad(runTime,1);
        String runTime2 = "04/15/2013:17:37:15";
        quartz.scheduleLoad(runTime2,2);
        String runTime3 = "04/15/2013:17:37:20";
        quartz.scheduleLoad(runTime3,3);
    }
}

しかし、「ユーザーの入力」を使用してジョブをスケジュールする必要がある Web アプリを作成する必要があります。これは私が立ち往生しているところです。これを行うにはどうすればよいですか? 私はJSPを使用します。

例-ユーザー 1 のコマンド- /home/user/load.sh -a -b -c (月曜日にスケジュール) ユーザー 2 のコマンド- /home/user/load.sh -a -b -g (火曜日にスケジュール)

Web ページからユーザーのコマンド、スケジュールの日付などを文字列として取得し、後でこの文字列を Quartz スケジューラ内で解析できます。しかし、ユーザーのジョブをスケジュールするために、最初にこの文字列を Quartz に渡すにはどうすればよいでしょうか?

明確にするため に、ユーザーが自分の仕事とスケジュールを定義できるようにしたいと考えています。

ありがとう

4

1 に答える 1