yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Quintiq file version 2.0
#parent: #root
MethodOverride ShouldStop (
  LibOpt_Task task
) as Boolean
{
  Description:
  [*
    Whether the `LibOpt_Iterator` should stop.
    When `true` is returned, all ongoing iterations spawned by the `LibOpt_Iterator` will be aborted.
  *]
  TextBody:
  [*
    context         := task.TaskContext().astype( LibOpt_TaskContextIterator );
    iterations      := context.CurrentIteration() >= this.MaxIterations()
    local_duration  := DateTime::ActualTime() - context.TimeStamp() >= this.MaxDurationLocal();
    global_duration := DateTime::ActualTime() - task.Run().StartedOn() >= this.MaxDurationGlobal();
    
    return iterations or local_duration or global_duration;
  *]
}