Skip to content

Commit 11b9c3e

Browse files
authored
Check worker runtime before warming up worker channels (#3859)
1 parent 4fbd994 commit 11b9c3e

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/WebJobs.Script/Rpc/LanguageWorkerChannelManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public ILanguageWorkerChannel CreateLanguageWorkerChannel(string workerId, strin
8585

8686
public Task InitializeAsync()
8787
{
88+
_workerRuntime = _environment.GetEnvironmentVariable(LanguageWorkerConstants.FunctionWorkerRuntimeSettingName);
8889
if (SystemEnvironment.Instance.IsLinuxAppServiceEnvironment())
8990
{
9091
return Task.CompletedTask;
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// Copyright (c) .NET Foundation. All rights reserved.
2+
// Licensed under the MIT License. See License.txt in the project root for license information.
3+
4+
using System.Collections.Generic;
5+
using System.Diagnostics;
6+
using System.Linq;
7+
using System.Threading.Tasks;
8+
using Microsoft.Azure.WebJobs.Script.Rpc;
9+
using Xunit;
10+
11+
namespace Microsoft.Azure.WebJobs.Script.Tests
12+
{
13+
public class LanguageWorkerChannelManagerEndToEndTests : IClassFixture<LanguageWorkerChannelManagerEndToEndTests.TestFixture>
14+
{
15+
private ILanguageWorkerChannelManager _languageWorkerChannelManager;
16+
public LanguageWorkerChannelManagerEndToEndTests(TestFixture fixture)
17+
{
18+
Fixture = fixture;
19+
_languageWorkerChannelManager = (ILanguageWorkerChannelManager) fixture.Host.Services.GetService(typeof(ILanguageWorkerChannelManager));
20+
21+
}
22+
23+
public TestFixture Fixture { get; set; }
24+
25+
[Fact]
26+
public void InitializeAsync_DoNotInitialize_JavaWorker()
27+
{
28+
var javaChannel = _languageWorkerChannelManager.GetChannel(LanguageWorkerConstants.JavaLanguageWorkerName);
29+
Assert.Null(javaChannel);
30+
}
31+
32+
public class TestFixture : ScriptHostEndToEndTestFixture
33+
{
34+
public TestFixture() : base(@"TestScripts\Node", "node", LanguageWorkerConstants.NodeLanguageWorkerName,
35+
startHost: true, functions: new[] { "HttpTrigger" })
36+
{
37+
}
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)