1
1
// Copyright (c) .NET Foundation. All rights reserved.
2
2
// Licensed under the MIT License. See License.txt in the project root for license information.
3
3
4
- using System ;
5
- using System . Collections . Generic ;
6
- using System . Linq ;
7
4
using Microsoft . Azure . WebJobs . Script . Abstractions ;
8
5
using Microsoft . Azure . WebJobs . Script . Eventing ;
9
6
using Microsoft . Extensions . Logging ;
10
- using Microsoft . Extensions . Options ;
11
7
12
8
namespace Microsoft . Azure . WebJobs . Script . Workers . Rpc
13
9
{
14
10
internal class RpcWorkerProcessFactory : IRpcWorkerProcessFactory
15
11
{
16
12
private readonly IWorkerProcessFactory _workerProcessFactory ;
17
- private readonly IEnumerable < RpcWorkerConfig > _workerConfigs = null ;
18
13
private readonly IProcessRegistry _processRegistry ;
19
14
private readonly ILoggerFactory _loggerFactory = null ;
20
15
private readonly IScriptEventManager _eventManager = null ;
21
16
private readonly IRpcServer _rpcServer = null ;
22
17
private readonly IWorkerConsoleLogSource _consoleLogSource ;
23
18
24
19
public RpcWorkerProcessFactory ( IRpcServer rpcServer ,
25
- IOptions < LanguageWorkerOptions > languageWorkerOptions ,
26
20
IScriptEventManager eventManager ,
27
21
ILoggerFactory loggerFactory ,
28
22
IWorkerProcessFactory defaultWorkerProcessFactory ,
@@ -32,15 +26,13 @@ public RpcWorkerProcessFactory(IRpcServer rpcServer,
32
26
_loggerFactory = loggerFactory ;
33
27
_eventManager = eventManager ;
34
28
_rpcServer = rpcServer ;
35
- _workerConfigs = languageWorkerOptions . Value . WorkerConfigs ;
36
29
_consoleLogSource = consoleLogSource ;
37
30
_workerProcessFactory = defaultWorkerProcessFactory ;
38
31
_processRegistry = processRegistry ;
39
32
}
40
33
41
- public IWorkerProcess Create ( string workerId , string runtime , string scriptRootPath )
34
+ public IWorkerProcess Create ( string workerId , string runtime , string scriptRootPath , RpcWorkerConfig workerConfig )
42
35
{
43
- RpcWorkerConfig workerConfig = _workerConfigs . Where ( c => c . Description . Language . Equals ( runtime , StringComparison . OrdinalIgnoreCase ) ) . FirstOrDefault ( ) ;
44
36
ILogger workerProcessLogger = _loggerFactory . CreateLogger ( $ "Worker.rpcWorkerProcess.{ runtime } .{ workerId } ") ;
45
37
return new RpcWorkerProcess ( runtime , workerId , scriptRootPath , _rpcServer . Uri , workerConfig . Arguments , _eventManager , _workerProcessFactory , _processRegistry , workerProcessLogger , _consoleLogSource ) ;
46
38
}
0 commit comments