コード例 #1
0
        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);
        }
コード例 #4
0
        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
                }
            }
        });
    }