I had this requirement where jBPM process was supposed to be triggered at specified time. I would like to share it here.


1)-  2 methods for testing it :


public void deploy()


ProcessEngine processEngine = configuration.buildProcessEngine();

RepositoryService repositoryService = processEngine.getRepositoryService();



public void startProcess(String key)


ProcessEngine processEngine = configuration.buildProcessEngine();

ExecutionService executionService = processEngine.getExecutionService();




2)- Creating a job that needs to be executed at the specified time :


public void execute(JobExecutionContext arg0) throws JobExecutionException {

Methods methods =  new Methods();





3)- Creating a scheduler and a Trigger that would trigger the method in step 2.


public void startupScheduler() throws SchedulerException, ParseException


SchedulerFactory schedulerFactory = new StdSchedulerFactory();

Scheduler scheduler = schedulerFactory.getScheduler();


JobDetail jobDetail = new JobDetail("startProcessJob", Scheduler.DEFAULT_GROUP, StartProcessJob.class);

CronTrigger ct=new CronTrigger("cronTrigger","group2","00 49 13 22 * ?");

scheduler.scheduleJob(jobDetail, ct);



note 1: Here, the 3rd parameter in jobDetail is the class StartProcessJob implementing interface Job, that contains overridden method execute that is in step 2.

note 2: Last parameter in CronTrigger represents the date-time that is matched with system time for triggering it. (secs,mins,hours,date,month,year).


4)- Finally calling process deploy() and then calling method startupScheduler().


Hope this is helpful.