private ViewCycleTrigger createViewCycleTrigger(ViewExecutionOptions executionOptions) { CombinedViewCycleTrigger trigger = new CombinedViewCycleTrigger(); trigger.addTrigger(_compilationExpiryCycleTrigger); if (executionOptions.getFlags().contains(ViewExecutionFlags.RUN_AS_FAST_AS_POSSIBLE)) { trigger.addTrigger(new RunAsFastAsPossibleTrigger()); } if (executionOptions.getFlags().contains(ViewExecutionFlags.TRIGGER_CYCLE_ON_TIME_ELAPSED)) { trigger.addTrigger(new RecomputationPeriodTrigger(this)); } if (executionOptions.getMaxSuccessiveDeltaCycles() != null) { trigger.addTrigger( new SuccessiveDeltaLimitTrigger(executionOptions.getMaxSuccessiveDeltaCycles())); } return trigger; }
public ViewComputationJob( ViewProcessImpl viewProcess, ViewExecutionOptions executionOptions, ViewProcessContext processContext, EngineResourceManagerInternal<SingleComputationCycle> cycleManager) { ArgumentChecker.notNull(viewProcess, "viewProcess"); ArgumentChecker.notNull(executionOptions, "executionOptions"); ArgumentChecker.notNull(processContext, "processContext"); ArgumentChecker.notNull(cycleManager, "cycleManager"); _viewProcess = viewProcess; _executionOptions = executionOptions; _processContext = processContext; _cycleManager = cycleManager; _marketDataChanged = !executionOptions.getFlags().contains(ViewExecutionFlags.WAIT_FOR_INITIAL_TRIGGER); _compilationExpiryCycleTrigger = new FixedTimeTrigger(); _masterCycleTrigger = createViewCycleTrigger(executionOptions); _executeCycles = !getExecutionOptions().getFlags().contains(ViewExecutionFlags.COMPILE_ONLY); updateViewDefinitionIfRequired(); subscribeToViewDefinition(); }