/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: SchedulerServlet.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.servlet;
import com.uwyn.rife.database.Datasource;
import com.uwyn.rife.database.Datasources;
import com.uwyn.rife.scheduler.Scheduler;
import com.uwyn.rife.scheduler.exceptions.FatalTaskExecutionException;
import com.uwyn.rife.scheduler.exceptions.NoExecutorForTasktypeException;
import com.uwyn.rife.scheduler.exceptions.UnableToRetrieveTasksToProcessException;
import com.uwyn.rife.scheduler.taskmanagers.DatabaseTasksFactory;
import com.uwyn.rife.scheduler.taskoptionmanagers.DatabaseTaskoptionsFactory;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class SchedulerServlet extends HttpServlet
{
private static final long serialVersionUID = 6728613469081145182L;
public void init()
throws ServletException
{
String sleep_time = getInitParameter("sleeptime");
String datasource_name = getInitParameter("datasource");
Datasource datasource = Datasources.getRepInstance().getDatasource(datasource_name);
Scheduler scheduler = new Scheduler(DatabaseTasksFactory.getInstance(datasource), DatabaseTaskoptionsFactory.getInstance(datasource));
if (null != sleep_time)
{
try
{
scheduler.setSleepTime(Integer.parseInt(sleep_time));
}
catch (NumberFormatException e)
{
// just use the default value for the sleep time
}
}
try
{
scheduler.start();
}
catch (NoExecutorForTasktypeException e)
{
Logger.getLogger("com.uwyn.rife.servlet").severe(e.getMessage());
}
catch (UnableToRetrieveTasksToProcessException e)
{
Logger.getLogger("com.uwyn.rife.servlet").severe(e.getMessage());
}
catch (FatalTaskExecutionException e)
{
Logger.getLogger("com.uwyn.rife.servlet").severe(e.getMessage());
}
}
}