File tree Expand file tree Collapse file tree 2 files changed +24
-3
lines changed
src/WebJobs.Script/Config
test/WebJobs.Script.Tests/Configuration Expand file tree Collapse file tree 2 files changed +24
-3
lines changed Original file line number Diff line number Diff line change @@ -70,13 +70,18 @@ public void Configure(ScriptJobHostOptions options)
7070
7171 private void ConfigureFunctionTimeout ( ScriptJobHostOptions options )
7272 {
73- if ( options . FunctionTimeout ! = null )
73+ if ( options . FunctionTimeout = = null )
7474 {
75- ValidateTimeoutValue ( options , options . FunctionTimeout ) ;
75+ options . FunctionTimeout = _environment . IsDynamic ( ) ? DefaultFunctionTimeoutDynamic : DefaultFunctionTimeout ;
76+ }
77+ else if ( ! _environment . IsDynamic ( ) && TimeSpan . Compare ( options . FunctionTimeout . Value , TimeSpan . FromDays ( - 1 ) ) == 0 )
78+ {
79+ // If a value of -1 is specified on a dedicated host, it should result in an infinite timeout
80+ options . FunctionTimeout = null ;
7681 }
7782 else
7883 {
79- options . FunctionTimeout = _environment . IsDynamic ( ) ? DefaultFunctionTimeoutDynamic : DefaultFunctionTimeout ;
84+ ValidateTimeoutValue ( options , options . FunctionTimeout ) ;
8085 }
8186 }
8287
Original file line number Diff line number Diff line change @@ -158,6 +158,18 @@ public void Configure_NoMaxTimeoutLimits_IfNotDynamic()
158158 Assert . Equal ( timeout , options . FunctionTimeout ) ;
159159 }
160160
161+ [ Fact ]
162+ public void Configure_AppliesInfiniteTimeout_IfNotDynamic ( )
163+ {
164+ var settings = new Dictionary < string , string >
165+ {
166+ { ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) , "-1" }
167+ } ;
168+
169+ var options = GetConfiguredOptions ( settings ) ;
170+ Assert . Equal ( null , options . FunctionTimeout ) ;
171+ }
172+
161173 [ Fact ]
162174 public void Configure_AppliesTimeoutLimits_IfDynamic ( )
163175 {
@@ -177,6 +189,10 @@ public void Configure_AppliesTimeoutLimits_IfDynamic()
177189 settings [ configPath ] = ( ScriptHostOptionsSetup . MinFunctionTimeout - TimeSpan . FromSeconds ( 1 ) ) . ToString ( ) ;
178190 ex = Assert . Throws < ArgumentException > ( ( ) => GetConfiguredOptions ( settings , environment ) ) ;
179191 Assert . Equal ( expectedMessage , ex . Message ) ;
192+
193+ settings [ configPath ] = "-1" ;
194+ ex = Assert . Throws < ArgumentException > ( ( ) => GetConfiguredOptions ( settings , environment ) ) ;
195+ Assert . Equal ( expectedMessage , ex . Message ) ;
180196 }
181197
182198 [ Fact ]
You can’t perform that action at this time.
0 commit comments