Exemple #1
0
        public void TestGet2()
        {
            // Add jobs
            List <Job> jobs = new List <Job>();

            for (int i = 0; i < 120; i++)
            {
                Job j = new Job(new Dictionary <string, string> {
                    {
                        "Data", MagnumBiDispatchController.NewJobId()
                    }
                });
                jobs.Add(j);
                this.datastore.Add(Qid, j);
            }

            // Check jobs
            Job previousJob = null;

            foreach (Job job in jobs)
            {
                Job jobReturned = this.datastore.Get(Qid, job.JobId);
                Dictionary <string, string> dataReturned = jobReturned.Data.ToObject <Dictionary <string, string> >();
                Assert.Equal(jobReturned.JobId, job.JobId);
                Assert.Equal(dataReturned, job.Data);
                if (previousJob != null)
                {
                    Assert.NotEqual(jobReturned.JobId, previousJob.JobId);
                }
                previousJob = job;
            }
        }
Exemple #2
0
        public void TestMongoGet2()
        {
            // Add jobs
            List <Job> jobs = new List <Job>();

            for (int i = 0; i < 120; i++)
            {
                Job j = new Job(new Dictionary <string, string> {
                    {
                        "Data", MagnumBiDispatchController.NewJobId()
                    }
                });
                jobs.Add(j);
                this.mongoDb.Add(Qid, j);
            }

            // Check jobs
            Job previousJob = null;

            foreach (Job job in jobs)
            {
                Job returnedJob = this.mongoDb.Get(Qid, job.JobId);
                Assert.Equal(returnedJob.JobId, job.JobId);
                Assert.Equal(returnedJob.Data, job.Data);
                if (previousJob != null)
                {
                    Assert.NotEqual(returnedJob.JobId, previousJob.JobId);
                }
                previousJob = job;
            }
        }
Exemple #3
0
        public void TestGet1()
        {
            string jobId = MagnumBiDispatchController.NewJobId();
            Dictionary <string, string> data = new Dictionary <string, string> {
                {
                    "Test", "data"
                }
            };

            this.datastore.Add(Qid, new Job(data, jobId));

            Job jobReturned = this.datastore.Get(Qid, jobId);
            Dictionary <string, string> dataReturned = jobReturned.Data.ToObject <Dictionary <string, string> >();

            Assert.Equal(jobReturned.JobId, jobId);
            Assert.Equal(dataReturned, data);
        }
Exemple #4
0
        public void TestMongoGet1()
        {
            string jobId = MagnumBiDispatchController.NewJobId();
            Dictionary <string, string> data = new Dictionary <string, string> {
                {
                    "Test", "data"
                }
            };
            dynamic eo = new ExpandoObject();

            this.mongoDb.Add(Qid, new Job(data, jobId));

            Job jobReturned = this.mongoDb.Get(Qid, jobId);

            Assert.Equal(jobReturned.JobId, jobId);
            Assert.Equal(jobReturned.Data, data);
        }
        public void TestBasicAdd()
        {
            string qid = this.RandomQueue();

            // Verify queue is empty before running this.
            if (!this.rabbitJobQueue.IsEmpty(qid))
            {
                this.rabbitJobQueue.ResetQueue(qid);
            }

            string jobId = MagnumBiDispatchController.NewJobId();

            this.rabbitJobQueue.QueueJob(qid, jobId);
            string returnedId = this.rabbitJobQueue.RetrieveJobId(qid);

            Assert.Equal(jobId, returnedId);
        }
        public void AttemptTestConcurrencyOne()
        {
            int numberOfJobsPerThread = 200;

            List <Task> tasks = new List <Task>();
            int         numberOfThreadsWanted = Environment.ProcessorCount;

            if (numberOfThreadsWanted < 4)
            {
                numberOfThreadsWanted = 4;
            }

            foreach (string queue in this.testQueues)
            {
                if (!this.rabbitJobQueue.IsEmpty(queue))
                {
                    this.rabbitJobQueue.DeleteQueue(queue);
                }
            }

            int expectedNumberOfJobs = numberOfThreadsWanted * numberOfJobsPerThread;

            for (int i = 0; i < numberOfThreadsWanted; i++)
            {
                tasks.Add(new Task(() => {
                    Thread.Sleep(100);
                    string q = this.RandomQueue();

                    for (int j = 0; j < numberOfJobsPerThread; j++)
                    {
                        string jobId = MagnumBiDispatchController.NewJobId();
                        this.rabbitJobQueue.QueueJob(q, jobId);
                        Thread.Sleep(10);
                    }
                }));
            }

            tasks.ForEach(thread => thread.Start());
            Task.WaitAll(tasks.ToArray(), TimeSpan.FromMinutes(2));
            foreach (Task task in tasks)
            {
                Assert.True(task.IsCompleted, "Tasks did not complete.");
            }
            Log.Information($"Expected {expectedNumberOfJobs} jobs.");
        }