Skip to content
Docs Try Aspire
Docs Try

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)
{
// ...
}
}
builder IDistributedApplicationBuilder The distributed application builder.
name string The 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) 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)
{
// ...
}
}
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder.
name string The 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>>) 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)
{
// ...
}
}
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.
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) 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)
{
// ...
}
}
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder.
connectionString string The 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>) 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)
{
// ...
}
}
builder IResourceBuilder<DurableTaskSchedulerResource> The scheduler resource builder.
connectionString IResourceBuilder<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) 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)
{
// ...
}
}
builder IResourceBuilder<DurableTaskHubResource> The task hub resource builder.
taskHubName string The 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>) 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)
{
// ...
}
}
builder IResourceBuilder<DurableTaskHubResource> The task hub resource builder.
taskHubName IResourceBuilder<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);