private ServiceConfiguration CreateBaseWorkflow() { var workflowConfig = new WorkflowServiceConfiguration { ServiceName = "GoogleAdwordsWorkflow", Workflow = new WorkflowNodeGroup { Mode = WorkflowNodeGroupMode.Linear, Nodes = new LockableList <WorkflowNode> { new WorkflowStep { Name = "EasyForexBackofficeInitializer", ServiceConfiguration = GetInitializerConfig() }, new WorkflowStep { Name = "EasyForexBackofficeRetriever", ServiceConfiguration = GetRetrieverConfig() }, new WorkflowStep { Name = "EasyForexBackofficeProcessor", ServiceConfiguration = GetProcessorConfig() }, new WorkflowStep { Name = "EasyForexBackofficeTrasform", ServiceConfiguration = GetTransformConfig() }, new WorkflowStep { Name = "EasyForexBackofficeStaging", ServiceConfiguration = GetStagingConfig() }, } }, Limits = { MaxExecutionTime = new TimeSpan(0, 3, 0, 0) } }; return(workflowConfig); }
private ServiceConfiguration CreateBaseWorkflow() { var workflowConfig = new WorkflowServiceConfiguration { ServiceName = "FacebookWorkflow", Workflow = new WorkflowNodeGroup { Mode = WorkflowNodeGroupMode.Linear, Nodes = new LockableList <WorkflowNode> { new WorkflowStep { Name = "FacebookInitializer", ServiceConfiguration = GetInitializerConfig() }, new WorkflowStep { Name = "FacebookRetriever", ServiceConfiguration = GetRetrieverConfig() }, new WorkflowStep { Name = "FacebookProcessor", ServiceConfiguration = GetProcessorConfig() }, //new WorkflowStep {Name = "FacebookTrasform", ServiceConfiguration = GetTransformConfig()}, //new WorkflowStep {Name = "FacebookStaging", ServiceConfiguration = GetStagingConfig()}, } }, Limits = { MaxExecutionTime = new TimeSpan(0, 3, 0, 0) } }; return(workflowConfig); }
private ServiceConfiguration CreateBaseWorkflow() { var workflowConfig = new WorkflowServiceConfiguration { ServiceName = "PipelineWorkflow", Workflow = new WorkflowNodeGroup { Mode = WorkflowNodeGroupMode.Linear, Nodes = new LockableList <WorkflowNode> { new WorkflowStep { Name = "PipelileTestInitializer", ServiceConfiguration = GetInitializerConfig() }, new WorkflowStep { Name = "PipelileTestRetriever", ServiceConfiguration = GetRetrieverConfig() }, new WorkflowStep { Name = "PipelileTestProcessor", ServiceConfiguration = GetProcessorConfig() }, new WorkflowStep { Name = "PipelileTestTrasform", ServiceConfiguration = GetTransformConfig() }, new WorkflowStep { Name = "PipelileTestStaging", ServiceConfiguration = GetStagingConfig() }, } } }; return(workflowConfig); }
static void Main(string[] args) { // .......................................................... // STEP 1 - host var envConfig = new ServiceEnvironmentConfiguration() { DefaultHostName = "Johnny", ConnectionString = "Data Source=bi_rnd;Initial Catalog=EdgeSystem;Integrated Security=true", SP_HostListGet = "Service_HostList", SP_HostRegister = "Service_HostRegister", SP_HostUnregister = "Service_HostUnregister", SP_InstanceSave = "Service_InstanceSave", SP_InstanceGet = "Service_InstanceGet", SP_InstanceReset = "Service_InstanceReset", SP_EnvironmentEventListenerListGet = "Service_EnvironmentEventListenerListGet", SP_EnvironmentEventListenerRegister = "Service_EnvironmentEventListenerRegister", SP_EnvironmentEventListenerUnregister = "Service_EnvironmentEventListenerUnregister" }; var environment = ServiceEnvironment.Open("Test Host", envConfig); using (var host = new ServiceExecutionHost(environment.EnvironmentConfiguration.DefaultHostName, environment)) { // Disabled for now - work in progress using (ServiceEnvironmentEventListener listener = environment.ListenForEvents(ServiceEnvironmentEventType.ServiceRequiresScheduling)) { listener.ServiceRequiresScheduling += new EventHandler <ServiceInstanceEventArgs>(Environment_ServiceRequiresScheduling); // .......................................................... // STEP 2 - service var serviceTemplate = new ServiceConfiguration() { IsEnabled = true, ServiceName = "Test", ServiceClass = typeof(TestService).AssemblyQualifiedName, HostName = "Johnny" }; #region workflow // .......................................................... // workflow example var stepConfig = new ServiceConfiguration() { ServiceClass = typeof(WorkflowStepExample).AssemblyQualifiedName }; var workflowConfig = new WorkflowServiceConfiguration() { ServiceName = "PipelineExample" }; workflowConfig.Workflow = new WorkflowNodeGroup() { Mode = WorkflowNodeGroupMode.Linear, Nodes = new LockableList <WorkflowNode>() { new WorkflowStep() { Name = "Initializer", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Retriever", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Processor", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Transform", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Stage", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Commit", ServiceConfiguration = stepConfig }, new WorkflowStep() { Name = "Cubes", ServiceConfiguration = stepConfig }, } }; #endregion // .......................................................... var profile = new ServiceProfile() { Name = "Doron" }; profile.Parameters["AccountID"] = 10035; ServiceConfiguration profileService = profile.DeriveConfiguration(workflowConfig); while (Console.ReadKey().Key != ConsoleKey.Escape) { ServiceInstance instance = environment.NewServiceInstance(profileService); instance.StateChanged += new EventHandler(instance_StateChanged); instance.OutputGenerated += new EventHandler <ServiceOutputEventArgs>(instance_OutputGenerated); instance.Start(); } } } }
Config() { // .............................. // Adwords var adwords = new WorkflowServiceConfiguration() { Parameters = new Dictionary <string, object>() { { "MaxFileSize", 2048 } } }; adwords.Workflow.Nodes = new List <WorkflowNode>() { new WF.Group() { Name = "Initializers", Mode = WF.GroupMode.Parallel, FailureBehavior = WorkflowNodeFailureBehavior.Terminate, Nodes = new List <WorkflowNode>() { new WF.Step() { Name = "Initializer1", Service = new ServiceConfiguration() { } }, new WF.Step() { Name = "Initializer2", Service = new ServiceConfiguration() { } }, new WF.Step() { Name = "Initializer3", Service = new ServiceConfiguration() { } }, } }, // Validate initializers new WF.If(n => n.Children.Count(child => child.Instance.Outcome == ServiceOutcome.Failure) > 0) { Then = new WF.End(ServiceOutcome.Failure) }, new Step() { Name = "Retriever", Service = new ServiceConfiguration() { } }, new Step() { Name = "Processor", Service = new ServiceConfiguration() { } } }; Services.Add(adwords); // ================================================================= // Profiles // .............................. Profiles.Add(new ServiceProfile() { Parameters = new Dictionary <string, object>() { { "AccountID", 100035 }, { "MaxFileSize", 500000 } }, Services = new List <ServiceConfiguration>() { adwords, new ServiceConfiguration() { BaseConfiguration = adwords } } }); }