def test_kgroupqueue_priority(self): kq = KGroupQueue.make(qkey='global') kq.touch('urgent', priority=1) kq.touch('normal', priority=2) for i in xrange(10): kq.put('normal', 'normal') kq.put('urgent', 'urgent') self.assertEqual(kq.get(), 'urgent')
def test_kgroupqueue(self): kq = KGroupQueue.make(qkey='global') kq.touch('normal/10.1.9.9', ['100/s', '200/s']) kq.makegroup('urgent/group1') kq.touch('urgent/group1/subgroup2/x.x.x.x', priority=3) self.assertEqual(kq.find('urgent').priority, 3) self.assertEqual(len(kq.queues), 2) kq.find('urgent').priority = 2 self.assertEqual(kq.find('urgent').priority, 2)
def test_kgroupqueue_ratelimit(self): kq = KGroupQueue.make(qkey='global') kq.touch('normal/10.1.9.9', [None, '100/s']) for i in xrange(200): kq.put(i) # This will take 2 seconds to finish for i in xrange(200): kq.get() for i in xrange(200): kq.put(i) with self.assertRaises(Empty): for i in xrange(200): kq.get(block=False)
#-*- coding=utf-8 -*- from kikyo.worker.kqueue import KGroupQueue, KQueue kq = KGroupQueue.make() kq.addque('normal', KGroupQueue.make()) kq.addque('urgent', KGroupQueue.make()) kq.find('normal').addque('10.1.9.9', KQueue.make(key='10.1.9.9'))