Search in sources :

Example 1 with Job

use of org.apache.activemq.broker.scheduler.Job in project activemq-artemis by apache.

the class InMemoryJobSchedulerStoreTest method testRestart.

@Test(timeout = 120 * 1000)
public void testRestart() throws Exception {
    InMemoryJobSchedulerStore store = new InMemoryJobSchedulerStore();
    File directory = new File("target/test/ScheduledDB");
    IOHelper.mkdirs(directory);
    IOHelper.deleteChildren(directory);
    store.setDirectory(directory);
    final int NUMBER = 1000;
    store.start();
    List<ByteSequence> list = new ArrayList<>();
    for (int i = 0; i < NUMBER; i++) {
        ByteSequence buff = new ByteSequence(new String("testjob" + i).getBytes());
        list.add(buff);
    }
    JobScheduler js = store.getJobScheduler("test");
    js.startDispatching();
    int count = 0;
    long startTime = 10 * 60 * 1000;
    long period = startTime;
    for (ByteSequence job : list) {
        js.schedule("id:" + (count++), job, "", startTime, period, -1);
    }
    List<Job> test = js.getAllJobs();
    LOG.debug("Found {} jobs in the store before restart", test.size());
    assertEquals(list.size(), test.size());
    store.stop();
    store.start();
    js = store.getJobScheduler("test");
    test = js.getAllJobs();
    LOG.debug("Found {} jobs in the store after restart", test.size());
    assertEquals(0, test.size());
}
Also used : JobScheduler(org.apache.activemq.broker.scheduler.JobScheduler) ArrayList(java.util.ArrayList) Job(org.apache.activemq.broker.scheduler.Job) File(java.io.File) ByteSequence(org.apache.activemq.util.ByteSequence) Test(org.junit.Test)

Aggregations

File (java.io.File)1 ArrayList (java.util.ArrayList)1 Job (org.apache.activemq.broker.scheduler.Job)1 JobScheduler (org.apache.activemq.broker.scheduler.JobScheduler)1 ByteSequence (org.apache.activemq.util.ByteSequence)1 Test (org.junit.Test)1