samples-ts/functions/callActivityWithRetry.ts (26 lines of code) (raw):

import { InvocationContext } from "@azure/functions"; import * as df from "durable-functions"; import { ActivityHandler, OrchestrationContext, OrchestrationHandler, RetryOptions, } from "durable-functions"; const callActivityWithRetry: OrchestrationHandler = function* (context: OrchestrationContext) { const retryOptions: RetryOptions = new df.RetryOptions(1000, 2); let returnValue: any; try { returnValue = yield context.df.callActivityWithRetry("flakyFunction", retryOptions); } catch (e) { context.log("Orchestrator caught exception. Flaky function is extremely flaky."); } return returnValue; }; df.app.orchestration("callActivityWithRetry", callActivityWithRetry); const flakyFunction: ActivityHandler = function (_input: any, context: InvocationContext): void { context.log("Flaky Function Flaking!"); throw new Error("FlakyFunction flaked"); }; df.app.activity("flakyFunction", { handler: flakyFunction, });