public bool AuthenticateUser(string userID, string password) { return(WorkflowHandler.AuthenticateUser(userID, password)); }
private static WorkflowManagement BuildWorkflowManagers(ConnectionMultiplexer mux, TaskHandler th, WorkflowHandler wh, EventHandler <Exception> eh) { var wm = new WorkflowManagement(mux, th, wh, new WorkflowManagementId("sampleApp"), eh); var extraProcessors = new List <WorkflowManagement>(); for (int i = 0; i < 10; i++) { extraProcessors.Add(new WorkflowManagement(mux, th, wh, new WorkflowManagementId("processor-" + i), eh)); } return(wm); }
internal void Run(string[] args) { int workflows = 100000; bool pushDone = false; int completed = 0; var countLock = new object(); var allDone = new ManualResetEvent(false); var completionEvents = new List <DateTime>(); var submittedQueueLength = new List <Tuple <DateTime, string> >(); var runningSetLength = new List <Tuple <DateTime, string> >(); var mux = ConnectMultiplexer(); var db = ConnectAndFlushDatabase(mux); var eh = CreateEventHandler(allDone); var th = CreateTaskHandler(); var wh = new WorkflowHandler(); wh.WorkflowComplete += (s, id) => { lock (countLock) { completed++; Console.Write("pushDone: " + pushDone + " done: " + completed + "\r"); completionEvents.Add(DateTime.Now); if (completed == workflows) { allDone.Set(); } } }; wh.WorkflowFailed += (s, id) => { lock (countLock) { completed++; Console.Write("pushDone: " + pushDone + " done: " + completed + "\r"); completionEvents.Add(DateTime.Now); if (completed == workflows) { allDone.Set(); } } }; CreateQueueLengthSampler(submittedQueueLength, runningSetLength, db); var wm = BuildWorkflowManagers(mux, th, wh, eh); var workflow = CreateTestWorkflow(); var startTime = DateTime.Now; for (int i = 0; i < workflows; i++) { var id = wm.PushWorkflow(workflow); } var pushDuration = new TimeSpan(DateTime.Now.Ticks - startTime.Ticks); pushDone = true; WaitHandle.WaitAny(new[] { allDone }); var duration = new TimeSpan(DateTime.Now.Ticks - startTime.Ticks); Console.WriteLine("Done, {0} in {1} ms (push took {2} ms, {3} per second) tasks: {4} churn: {5} tasks per second", workflows, duration.TotalMilliseconds, pushDuration.TotalMilliseconds, workflows / pushDuration.TotalSeconds, workflows * 9, workflows * 9 / duration.TotalSeconds); Console.Write("Saving data .. "); ExportQueueLengths(submittedQueueLength, runningSetLength, startTime); ExportFinalWorkflowCompletion(completionEvents, startTime); ExportWorkflowCompletion(workflows, wm, startTime); ExportTaskData(workflows, wm, startTime); Console.WriteLine("done"); Console.ReadLine(); db.ScriptEvaluate("redis.call(\"flushdb\")"); // TODO need to look at timeouts }
//同 public SectionChief(WorkflowHandler nextHandler): base() public SectionChief(WorkflowHandler nextHandler) { Supervisor = nextHandler; }