public constructor()

in src/task/LongTimerTask.ts [28:57]


    public constructor(
        id: TaskID,
        action: CreateTimerAction,
        orchestrationContext: DurableOrchestrationContext,
        executor: TaskOrchestrationExecutor,
        maximumTimerLength: string,
        longRunningTimerIntervalLength: string
    ) {
        const maximumTimerDuration = moment.duration(maximumTimerLength);
        const longRunningTimerIntervalDuration = moment.duration(longRunningTimerIntervalLength);
        const currentTime = orchestrationContext.currentUtcDateTime;
        const finalFireTime = action.fireAt;
        const durationUntilFire = moment.duration(moment(finalFireTime).diff(currentTime));

        const nextFireTime: Date =
            durationUntilFire > maximumTimerDuration
                ? moment(currentTime).add(longRunningTimerIntervalDuration).toDate()
                : finalFireTime;

        const nextTimerAction = new CreateTimerAction(nextFireTime);
        const nextTimerTask = new DFTimerTask(false, nextTimerAction);
        super([nextTimerTask], action);

        this.id = id;
        this.action = action;
        this.orchestrationContext = orchestrationContext;
        this.executor = executor;
        this.maximumTimerDuration = maximumTimerDuration;
        this.longRunningTimerIntervalDuration = longRunningTimerIntervalDuration;
    }