Esempio n. 1
0
 static void Main(string[] args)
 {
     if (args.Length > 0 && args[0] == "worker")
     {
         var dotq   = new DotqApi();
         var worker = dotq.CreateWorker();
         worker.StartConsumerLoop(new TimeSpan(0, 0, 50));
     }
     if (args.Length > 0 && args[0] == "client-1")
     {
         var dotq   = new DotqApi();
         var task   = new AddTask((5, 5));
         var handle = dotq.Delay(task);
         handle.Wait();
         var result = handle.GetResult();
         Console.WriteLine($"Result :{result}");
     }
     if (args.Length > 0 && args[0] == "client-2")
     {
         var dotq = new DotqApi();
         var task = new ListSum(new List <int> {
             1, 2, 3, 4, 5, 6, 7, 8, 9, 10
         });
         var handle = dotq.Build(task, firstTaskResult =>
         {
             Console.WriteLine($"first is executed {firstTaskResult}");
             var handle2 = dotq.Build(new AddTask((firstTaskResult, 5)), o1 => { Console.WriteLine($"Chain result is {o1}"); });
Esempio n. 2
0
        public void Test_TaskEnqueueAndExecuting()
        {
            ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
            var m = new RedisTaskQueue(redis);

            m.Clear();
            var mult = new MultiplyTask(new Inp {
                x = 4, y = 5
            });
            var add    = new AddTask(new (5, 6));
            var concat = new ConcatTask(new Inp2 {
                x = new List <string>()
                {
                    "Hello", " ", "World", "!"
                }
            });
            var listSum = new ListSum(new List <int> {
                1, 2, 3, 4, 5
            });

            m.Enqueue(mult);
            m.Enqueue(add);
            m.Enqueue(concat);
            m.Enqueue(listSum);

            var registry = (ITaskRegistry)TaskRegistry.Instance;

            registry.Clear();
            registry.DiscoverTasks();

            for (long i = 0; i < m.Length(); i++)
            {
                var task = m.Dequeue();
                task.Execute();
                if (i == 0)
                {
                    var res = (int)task.GetObjectResult();
                    Assert.Equal(20, res);
                }
                if (i == 1)
                {
                    var res = (int)task.GetObjectResult();
                    Assert.Equal(11, res);
                }
                if (i == 2)
                {
                    var res = (string)task.GetObjectResult();
                    Assert.Equal("Hello World!", res);
                }
                if (i == 3)
                {
                    var res = (int)task.GetObjectResult();
                    Assert.Equal(5 * 6 / 2, res);
                }
            }
        }
Esempio n. 3
0
        static int SumList2(ListSum <int> x)
        {
            int total = 0;

            for (int i = 0; i < x.Count; i++)
            {
                total += x[i];
            }
            return(total);
        }
Esempio n. 4
0
        static int MaxOfList(ListSum <int> x)
        {
            int maxima = x[0];

            for (int i = 1; i < x.Count; i++)
            {
                if (x[i] > maxima)
                {
                    maxima = x[i];
                }
            }
            return(maxima);
        }