Example #1
0
        public virtual void testSetPriority()
        {
            JDFQueueEntry qe = q.getQueueEntry("qe2");

            Assert.AreEqual(1, q.getQueueEntryPos("qe2"));
            q.setAutomated(true);
            int l = q.numEntries(null);

            qe.setPriority(99);
            Assert.AreEqual(l, q.numEntries(null));
            Assert.AreEqual(1, q.getQueueEntryPos("qe2"));

            qe.setPriority(0);
            Assert.AreEqual(l, q.numEntries(null));
            Assert.AreEqual(2, q.getQueueEntryPos("qe2"));
            q.removeChildren(ElementName.QUEUEENTRY, null, null);
            for (int i = 0; i < 1000; i++)
            {
                qe = q.appendQueueEntry();
                qe.setQueueEntryID("q" + i);
                qe.setPriority((i * 7) % 100);
                qe.setQueueEntryStatus((i % 3 != 0) ? EnumQueueEntryStatus.Waiting : EnumQueueEntryStatus.Running);
            }
            JDFQueueEntry qeLast = null;

            for (int i = 0; i < 1000; i++)
            {
                qe = q.getQueueEntry(i);
                Assert.IsTrue(qe.CompareTo(qeLast) >= 0, "queue is sorted: " + i);
                qeLast = qe;
            }
        }
Example #2
0
        public virtual void testThreads()
        {
            q.setAutomated(true);
            q.removeChildren(ElementName.QUEUEENTRY, null, null);
            q.setMaxCompletedEntries(999999999);
            for (int i = 0; i < 10; i++)
            {
                QueueTestThread queueTestThread = new QueueTestThread();
                Thread          runThread       = new Thread(new ThreadStart(queueTestThread.Run));
                runThread.Name = "Test Thread_" + i;
                runThread.Start();
            }
            // now also zapp some...
            for (int j = 0; j < 100; j++)
            {
                JDFQueueEntry qex = q.getNextExecutableQueueEntry();
                if (qex != null)
                {
                    qex.setQueueEntryStatus(EnumQueueEntryStatus.Running);
                    qex.setQueueEntryStatus(EnumQueueEntryStatus.Completed);
                }
            }
            while (iThread > 0)
            {
                StatusCounter.sleep(100); // wait for threads to be over
            }
            Assert.AreEqual(q.getQueueSize(), 1000);
            VElement      v      = q.getQueueEntryVector();
            JDFQueueEntry qeLast = null;

            for (int i = 0; i < v.Count; i++)
            {
                JDFQueueEntry qe = (JDFQueueEntry)v[i];
                Console.WriteLine(qe.getPriority() + " " + qe.getQueueEntryID() + " " + qe.getQueueEntryStatus());
                Assert.IsTrue(qe.CompareTo(qeLast) >= 0);
                qeLast = qe;
            }
            v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Completed"), null);
            Assert.AreEqual(100, v.Count);
            v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Running"), null);
            Assert.IsNull(v);
            v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Held"), null);
            Assert.AreEqual(500, v.Count);
            v = q.getQueueEntryVector(new JDFAttributeMap(AttributeName.STATUS, "Waiting"), null);
            Assert.AreEqual(400, v.Count);
        }