internal override Process CreateWorkerProcess() { var workerContext = new RpcWorkerContext(Guid.NewGuid().ToString(), RpcWorkerConstants.DefaultMaxMessageLengthBytes, _workerId, _workerProcessArguments, _scriptRootPath, _serverUri); workerContext.EnvironmentVariables.Add(WorkerConstants.FunctionsWorkerDirectorySettingName, _workerDirectory); return(_processFactory.CreateWorkerProcess(workerContext)); }
public Task StartWorkerProcessAsync() { _startSubscription = _inboundWorkerEvents.Where(msg => msg.MessageType == MsgType.StartStream) .Timeout(TimeSpan.FromSeconds(LanguageWorkerConstants.ProcessStartTimeoutSeconds)) .Take(1) .Subscribe(SendWorkerInitRequest, HandleWorkerError); var workerContext = new WorkerContext() { RequestId = Guid.NewGuid().ToString(), MaxMessageLength = LanguageWorkerConstants.DefaultMaxMessageLengthBytes, WorkerId = _workerId, Arguments = _workerConfig.Arguments, WorkingDirectory = _rootScriptPath, ServerUri = _serverUri, }; _process = _processFactory.CreateWorkerProcess(workerContext); StartProcess(); _processRegistry?.Register(_process); _state = LanguageWorkerChannelState.Initializing; return(Task.CompletedTask); }
internal LanguageWorkerProcess(string runtime, string workerId, string rootScriptPath, Uri serverUri, WorkerProcessArguments workerProcessArguments, IScriptEventManager eventManager, IWorkerProcessFactory processFactory, IProcessRegistry processRegistry, ILogger workerProcessLogger, ILanguageWorkerConsoleLogSource consoleLogSource) { _runtime = runtime; _workerId = workerId; _processFactory = processFactory; _processRegistry = processRegistry; _workerProcessLogger = workerProcessLogger; _consoleLogSource = consoleLogSource; _eventManager = eventManager; var workerContext = new WorkerContext() { RequestId = Guid.NewGuid().ToString(), MaxMessageLength = LanguageWorkerConstants.DefaultMaxMessageLengthBytes, WorkerId = _workerId, Arguments = workerProcessArguments, WorkingDirectory = rootScriptPath, ServerUri = serverUri, }; _process = _processFactory.CreateWorkerProcess(workerContext); }
internal override Process CreateWorkerProcess() { var workerContext = new HttpWorkerContext() { RequestId = Guid.NewGuid().ToString(), WorkerId = _workerId, Arguments = _workerProcessArguments, WorkingDirectory = _scriptRootPath, }; return(_processFactory.CreateWorkerProcess(workerContext)); }
internal override Process CreateWorkerProcess() { var workerContext = new HttpWorkerContext() { RequestId = Guid.NewGuid().ToString(), WorkerId = _workerId, Arguments = _workerProcessArguments, WorkingDirectory = _scriptRootPath, Port = _httpWorkerOptions.Port }; workerContext.EnvironmentVariables.Add(HttpWorkerConstants.PortEnvVarName, _httpWorkerOptions.Port.ToString()); return(_processFactory.CreateWorkerProcess(workerContext)); }
internal override Process CreateWorkerProcess() { var workerContext = new RpcWorkerContext() { RequestId = Guid.NewGuid().ToString(), MaxMessageLength = LanguageWorkerConstants.DefaultMaxMessageLengthBytes, WorkerId = _workerId, Arguments = _workerProcessArguments, WorkingDirectory = _scriptRootPath, ServerUri = _serverUri, }; return(_processFactory.CreateWorkerProcess(workerContext)); }
// start worker process and wait for an rpc start stream response internal void StartWorker() { _startSubscription = _inboundWorkerEvents.Where(msg => msg.MessageType == MsgType.StartStream) .Timeout(timeoutStart) .Take(1) .Subscribe(InitWorker, HandleWorkerError); var workerContext = new WorkerCreateContext() { RequestId = Guid.NewGuid().ToString(), WorkerId = _workerId, Arguments = _workerConfig.Arguments, WorkingDirectory = _scriptConfig.RootScriptPath, ServerUri = _serverUri, }; _process = _processFactory.CreateWorkerProcess(workerContext); StartProcess(_workerId, _process); }
public void StartWorkerProcess() { _startSubscription = _inboundWorkerEvents.Where(msg => msg.MessageType == MsgType.StartStream) .Timeout(processStartTimeout) .Take(1) .Subscribe(SendWorkerInitRequest, HandleWorkerError); var workerContext = new WorkerContext() { RequestId = Guid.NewGuid().ToString(), MaxMessageLength = LanguageWorkerConstants.DefaultMaxMessageLengthBytes, WorkerId = _workerId, Arguments = _workerConfig.Arguments, WorkingDirectory = _rootScriptPath, ServerUri = _serverUri, }; _process = _processFactory.CreateWorkerProcess(workerContext); StartProcess(); _processRegistry?.Register(_process); }
internal override Process CreateWorkerProcess() { var workerContext = new HttpWorkerContext() { RequestId = Guid.NewGuid().ToString(), WorkerId = _workerId, Arguments = _workerProcessArguments, WorkingDirectory = _httpWorkerOptions.Description.WorkingDirectory, Port = _httpWorkerOptions.Port }; workerContext.EnvironmentVariables.Add(HttpWorkerConstants.PortEnvVarName, _httpWorkerOptions.Port.ToString()); workerContext.EnvironmentVariables.Add(HttpWorkerConstants.WorkerIdEnvVarName, _workerId); workerContext.EnvironmentVariables.Add(HttpWorkerConstants.CustomHandlerPortEnvVarName, _httpWorkerOptions.Port.ToString()); workerContext.EnvironmentVariables.Add(HttpWorkerConstants.CustomHandlerWorkerIdEnvVarName, _workerId); workerContext.EnvironmentVariables.Add(HttpWorkerConstants.FunctionAppRootVarName, _scriptRootPath); Process workerProcess = _processFactory.CreateWorkerProcess(workerContext); if (_environment.IsLinuxConsumption()) { AssignUserExecutePermissionsIfNotExists(workerProcess.StartInfo.FileName); } return(workerProcess); }
internal override Process CreateWorkerProcess() { var workerContext = new RpcWorkerContext(Guid.NewGuid().ToString(), RpcWorkerConstants.DefaultMaxMessageLengthBytes, _workerId, _workerProcessArguments, _scriptRootPath, _serverUri); return(_processFactory.CreateWorkerProcess(workerContext)); }