Skip to content
DocsTry Aspire
DocsTry

DurableTaskResourceExtensions Methods

ClassMethods7 members
Extension methods for adding and configuring Durable Task resources within a distributed application.
AddDurableTaskScheduler(IDistributedApplicationBuilder, string)Section titled AddDurableTaskScheduler(IDistributedApplicationBuilder, string)extensionIResourceBuilder<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)
{
// ...
}
}
builderIDistributedApplicationBuilderThe distributed application builder.
namestringThe logical name of the scheduler resource.
IResourceBuilder<DurableTaskSchedulerResource>An ApplicationModel.IResourceBuilder`1 for the scheduler resource.

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)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<DurableTaskSchedulerResource>The scheduler resource builder.
namestringThe logical name of the task hub resource.
IResourceBuilder<DurableTaskHubResource>An ApplicationModel.IResourceBuilder`1 for the task hub resource.

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>>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<DurableTaskSchedulerResource>The resource builder for the scheduler.
configureContainerAction<IResourceBuilder<DurableTaskSchedulerEmulatorResource>>optionalCallback that exposes underlying container used for emulation to allow for customization.
IResourceBuilder<DurableTaskSchedulerResource>The same ApplicationModel.IResourceBuilder`1 instance for chaining.

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)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<DurableTaskSchedulerResource>The scheduler resource builder.
connectionStringstringThe connection string referencing the existing Durable Task scheduler instance.
IResourceBuilder<DurableTaskSchedulerResource>The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining.
The existing resource annotation is only applied when the execution context is not in publish mode.

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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<DurableTaskSchedulerResource>The scheduler resource builder.
connectionStringIResourceBuilder<ParameterResource>The connection string parameter referencing the existing Durable Task scheduler instance.
IResourceBuilder<DurableTaskSchedulerResource>The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining.
The existing resource annotation is only applied when the execution context is not in publish mode.

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)extensionIResourceBuilder<DurableTaskHubResource>
Sets the name of the Durable Task hub.
public static class DurableTaskResourceExtensions
{
public static IResourceBuilder<DurableTaskHubResource> WithTaskHubName(
this IResourceBuilder<DurableTaskHubResource> builder,
string taskHubName)
{
// ...
}
}
builderIResourceBuilder<DurableTaskHubResource>The task hub resource builder.
taskHubNamestringThe name of the Task Hub.
IResourceBuilder<DurableTaskHubResource>The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining.

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>)extensionIResourceBuilder<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)
{
// ...
}
}
builderIResourceBuilder<DurableTaskHubResource>The task hub resource builder.
taskHubNameIResourceBuilder<ParameterResource>A parameter resource that resolves to the Task Hub name.
IResourceBuilder<DurableTaskHubResource>The same ApplicationModel.IResourceBuilder`1 instance for fluent chaining.

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);