@@ -22,6 +22,8 @@ class SqlDurabilityProviderFactory : IDurabilityProviderFactory
2222 readonly ILoggerFactory loggerFactory ;
2323 readonly IConnectionInfoResolver connectionInfoResolver ;
2424
25+ readonly bool useSeparateQueueForEntityWorkItems = false ;
26+
2527 SqlDurabilityOptions ? defaultOptions ;
2628 SqlDurabilityProvider ? defaultProvider ;
2729
@@ -37,11 +39,22 @@ class SqlDurabilityProviderFactory : IDurabilityProviderFactory
3739 public SqlDurabilityProviderFactory (
3840 IOptions < DurableTaskOptions > extensionOptions ,
3941 ILoggerFactory loggerFactory ,
40- IConnectionInfoResolver connectionInfoResolver )
42+ IConnectionInfoResolver connectionInfoResolver ,
43+ #pragma warning disable CS0612 // Type or member is obsolete
44+ IPlatformInformation platformInfo )
45+ #pragma warning restore CS0612 // Type or member is obsolete
4146 {
4247 this . extensionOptions = extensionOptions ? . Value ?? throw new ArgumentNullException ( nameof ( extensionOptions ) ) ;
4348 this . loggerFactory = loggerFactory ?? throw new ArgumentNullException ( nameof ( loggerFactory ) ) ;
4449 this . connectionInfoResolver = connectionInfoResolver ?? throw new ArgumentNullException ( nameof ( connectionInfoResolver ) ) ;
50+
51+ WorkerRuntimeType runtimeType = platformInfo . GetWorkerRuntimeType ( ) ;
52+ if ( runtimeType == WorkerRuntimeType . DotNetIsolated ||
53+ runtimeType == WorkerRuntimeType . Java ||
54+ runtimeType == WorkerRuntimeType . Custom )
55+ {
56+ this . useSeparateQueueForEntityWorkItems = true ;
57+ }
4558 }
4659
4760 // Called by the Durable trigger binding infrastructure
@@ -85,9 +98,11 @@ public DurabilityProvider GetDurabilityProvider(DurableClientAttribute attribute
8598
8699 SqlOrchestrationService GetOrchestrationService ( SqlDurabilityOptions clientOptions )
87100 {
88- return new ( clientOptions . GetOrchestrationServiceSettings (
101+ SqlOrchestrationServiceSettings sqlOrchestrationServiceSettings = clientOptions . GetOrchestrationServiceSettings (
89102 this . extensionOptions ,
90- this . connectionInfoResolver ) ) ;
103+ this . connectionInfoResolver ) ;
104+ sqlOrchestrationServiceSettings . UseSeparateQueueForEntityWorkItems = this . useSeparateQueueForEntityWorkItems ;
105+ return new ( sqlOrchestrationServiceSettings ) ;
91106 }
92107
93108 static string GetDurabilityProviderKey ( DurableClientAttribute attribute )
0 commit comments