DurableTaskResourceExtensions Methods
Class Methods 7 members
Extension methods for adding and configuring Durable Task resources within a distributed application.
AddDurableTaskScheduler(IDistributedApplicationBuilder, string) Section titled AddDurableTaskScheduler(IDistributedApplicationBuilder, string) extension IResourceBuilder<DurableTaskSchedulerResource> Adds a Durable Task scheduler resource to the distributed application.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskSchedulerResource> AddDurableTaskScheduler( this IDistributedApplicationBuilder builder, string name) { // ... }}Parameters
builder IDistributedApplicationBuilder The distributed application builder. name string The logical name of the scheduler resource. Returns
IResourceBuilder<DurableTaskSchedulerResource> An ApplicationModel.IResourceBuilder`1 for the scheduler resource. Examples
Add a Durable Task scheduler resource:
var builder = DistributedApplication.CreateBuilder(args);var scheduler = builder.AddDurableTaskScheduler("scheduler");AddTaskHub(IResourceBuilder<DurableTaskSchedulerResource>, string) Section titled AddTaskHub(IResourceBuilder<DurableTaskSchedulerResource>, string) extension IResourceBuilder<DurableTaskHubResource> Adds a Durable Task hub resource associated with the specified scheduler.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskHubResource> AddTaskHub( this IResourceBuilder<DurableTaskSchedulerResource> builder, string name) { // ... }}Parameters
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder. name string The logical name of the task hub resource. Returns
IResourceBuilder<DurableTaskHubResource> An ApplicationModel.IResourceBuilder`1 for the task hub resource. Examples
Add a task hub under a scheduler:
var builder = DistributedApplication.CreateBuilder(args);var scheduler = builder.AddDurableTaskScheduler("scheduler").RunAsEmulator();
var hub = scheduler.AddTaskHub("hub") .WithTaskHubName("MyTaskHub");RunAsEmulator(IResourceBuilder<DurableTaskSchedulerResource>, Action<IResourceBuilder<DurableTaskSchedulerEmulatorResource>>) Section titled RunAsEmulator(IResourceBuilder<DurableTaskSchedulerResource>, Action<IResourceBuilder<DurableTaskSchedulerEmulatorResource>>) extension IResourceBuilder<DurableTaskSchedulerResource> Configures the Durable Task scheduler to run using the local emulator (only in non-publish modes).
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskSchedulerResource> RunAsEmulator( this IResourceBuilder<DurableTaskSchedulerResource> builder, Action<IResourceBuilder<DurableTaskSchedulerEmulatorResource>>? configureContainer = null) { // ... }}Parameters
builder IResourceBuilder<DurableTaskSchedulerResource> The resource builder for the scheduler. configureContainer Action<IResourceBuilder<DurableTaskSchedulerEmulatorResource>> optional Callback that exposes underlying container used for emulation to allow for customization. Returns
IResourceBuilder<DurableTaskSchedulerResource> The same ApplicationModel.IResourceBuilder`1 instance for chaining. Examples
Run the scheduler locally using the emulator:
var builder = DistributedApplication.CreateBuilder(args);var scheduler = builder.AddDurableTaskScheduler("scheduler") .RunAsEmulator();RunAsExisting(IResourceBuilder<DurableTaskSchedulerResource>, string) Section titled RunAsExisting(IResourceBuilder<DurableTaskSchedulerResource>, string) extension IResourceBuilder<DurableTaskSchedulerResource> Configures the Durable Task scheduler to use an existing scheduler instance referenced by the provided connection string. No new scheduler resource is provisioned.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskSchedulerResource> RunAsExisting( this IResourceBuilder<DurableTaskSchedulerResource> builder, string connectionString) { // ... }}Parameters
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder. connectionString string The connection string referencing the existing Durable Task scheduler instance. Returns
IResourceBuilder<DurableTaskSchedulerResource> The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining. Remarks
The existing resource annotation is only applied when the execution context is not in publish mode.
Examples
Use an existing scheduler instead of provisioning a new one:
var builder = DistributedApplication.CreateBuilder(args);var scheduler = builder.AddDurableTaskScheduler("scheduler") .RunAsExisting("Endpoint=https://example;...;");RunAsExisting(IResourceBuilder<DurableTaskSchedulerResource>, IResourceBuilder<ParameterResource>) Section titled RunAsExisting(IResourceBuilder<DurableTaskSchedulerResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<DurableTaskSchedulerResource> Configures the Durable Task scheduler to use an existing scheduler instance referenced by the provided connection string. No new scheduler resource is provisioned.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskSchedulerResource> RunAsExisting( this IResourceBuilder<DurableTaskSchedulerResource> builder, IResourceBuilder<ParameterResource> connectionString) { // ... }}Parameters
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder. connectionString IResourceBuilder<ParameterResource> The connection string parameter referencing the existing Durable Task scheduler instance. Returns
IResourceBuilder<DurableTaskSchedulerResource> The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining. Remarks
The existing resource annotation is only applied when the execution context is not in publish mode.
Examples
Use an existing scheduler where the connection string is supplied via a parameter:
var builder = DistributedApplication.CreateBuilder(args);var schedulerConnectionString = builder.AddParameter("schedulerConnectionString");
var scheduler = builder.AddDurableTaskScheduler("scheduler") .RunAsExisting(schedulerConnectionString);WithTaskHubName(IResourceBuilder<DurableTaskHubResource>, string) Section titled WithTaskHubName(IResourceBuilder<DurableTaskHubResource>, string) extension IResourceBuilder<DurableTaskHubResource> Sets the name of the Durable Task hub.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskHubResource> WithTaskHubName( this IResourceBuilder<DurableTaskHubResource> builder, string taskHubName) { // ... }}Parameters
builder IResourceBuilder<DurableTaskHubResource> The task hub resource builder. taskHubName string The name of the Task Hub. Returns
IResourceBuilder<DurableTaskHubResource> The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining. Examples
Set the task hub name:
var builder = DistributedApplication.CreateBuilder(args);var scheduler = builder.AddDurableTaskScheduler("scheduler").RunAsEmulator();var hub = scheduler.AddTaskHub("hub").WithTaskHubName("MyTaskHub");WithTaskHubName(IResourceBuilder<DurableTaskHubResource>, IResourceBuilder<ParameterResource>) Section titled WithTaskHubName(IResourceBuilder<DurableTaskHubResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<DurableTaskHubResource> Sets the name of the Durable Task hub using a parameter resource.
public static class DurableTaskResourceExtensions{ public static IResourceBuilder<DurableTaskHubResource> WithTaskHubName( this IResourceBuilder<DurableTaskHubResource> builder, IResourceBuilder<ParameterResource> taskHubName) { // ... }}Parameters
builder IResourceBuilder<DurableTaskHubResource> The task hub resource builder. taskHubName IResourceBuilder<ParameterResource> A parameter resource that resolves to the Task Hub name. Returns
IResourceBuilder<DurableTaskHubResource> The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining. Examples
Set the task hub name from a parameter:
var builder = DistributedApplication.CreateBuilder(args);var taskHubName = builder.AddParameter("taskHubName");
var scheduler = builder.AddDurableTaskScheduler("scheduler").RunAsEmulator();var hub = scheduler.AddTaskHub("hub").WithTaskHubName(taskHubName);