You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@polygene.apache.org by "Niclas Hedhman (JIRA)" <ji...@apache.org> on 2015/11/10 03:08:11 UTC
[jira] [Assigned] (ZEST-128) Scheduler Library looses schedules
[ https://issues.apache.org/jira/browse/ZEST-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Niclas Hedhman reassigned ZEST-128:
-----------------------------------
Assignee: Niclas Hedhman
> Scheduler Library looses schedules
> ----------------------------------
>
> Key: ZEST-128
> URL: https://issues.apache.org/jira/browse/ZEST-128
> Project: Zest
> Issue Type: Bug
> Affects Versions: 2.1
> Reporter: Niclas Hedhman
> Assignee: Niclas Hedhman
> Priority: Critical
>
> The Scheduler Library doesn't manage to keep the schedules running. Some seems to get lost, and many are never run at all.
> I have modified the existing test case to show that being the case. Below, the task is only run once.
> From my app, I am pretty sure it doesn't matter whether it is the same Task instance or separate instances... They get lost...
> {code:Title=SchedulerTest.java}
> @Test
> public void testOnce()
> throws UnitOfWorkCompletionException
> {
> final Usecase usecase = UsecaseBuilder.newUsecase( "TestOnce" );
> final String taskIdentity;
> try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
> {
> Scheduler scheduler = module.findService( Scheduler.class ).get();
> FooTask task = createFooTask( uow, usecase.name(), BAZAR );
> taskIdentity = task.identity().get();
> scheduler.scheduleOnce( task, 1, true );
> scheduler.scheduleOnce( task, 2, true );
> scheduler.scheduleOnce( task, 3, true );
> scheduler.scheduleOnce( task, 4, true );
> uow.complete();
> }
> await( usecase.name() )
> .until( taskOutput( taskIdentity ), equalTo( 4 ) );
> }
> {code}
> {code:Title=FooTask.java}
> @UseDefaults
> Property<Integer> runCounter();
> abstract class Mixin
> implements Runnable
> {
> :
> :
> :
> @Override
> public void run()
> {
> synchronized( this )
> {
> me.runCounter().set( me.runCounter().get() + 1 );
> }
> :
> :
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)