コード例 #1
0
 def post(self): 
     self.response.headers.add_header('Content-Type', 'application/json') 
     r = {'status': 'OK'}
     try:
         data = json.loads(self.request.body)
         channel = data['sub_data']['channel']
         name = data['sub_data'].get('taskname')
         if not name:
             name = data['pub_data'].get(data['sub_data'].get('pubname'))
         r['id'] = TaskQueue.add (channel, name, data)
     except Exception, e:
         r['status'] = 'ERR'
         r['message'] = str(e)
コード例 #2
0
    def testall(self):
        queue = TaskQueue()
        id = queue.add (channel='C', name='N', content=dict(xxx=123))
        self.assertIsNotNone(id)
        lease = queue.lease (channel='C')
        self.assertIsNotNone(lease)
        self.assertEqual(lease['id'], id)
        self.assertEqual(lease['name'], 'N')
        self.assertEqual(lease['channel'], 'C')
        lease = queue.lease (channel='C')
        self.assertIsNone(lease)
        lease = queue.lease (channel='NOT FOUND')
        self.assertIsNone(lease)

        queue.add (channel='C', name='N1', content=dict(xxx=123))
        queue.add (channel='C', name='N2', content=dict(xxx=123))
        lease = queue.lease (channel='C')
        self.assertTrue(queue.delete (lease, 'DONE'))
        self.assertFalse(queue.delete (lease, 'DONE'))
        lease = queue.lease (channel='C')
        self.assertTrue(queue.delete (lease, 'DONE'))
        lease = queue.lease (channel='C')
        self.assertIsNone(lease)
コード例 #3
0
 def add(self, request):
     """Add a task to the queue
     
     Args:
         request: an AddTaskRequest
     Returns:
         An AddTaskResponse.   status=='OK' on success.  Any other value indicates failure and the task is not added
     """
     response = AddTaskResponse(status = 'OK')
     try:
         EndpointsHelper.authenticate()
         id = TaskQueue.add(request.channel, request.name, request.content)
         #TODO: Maybe we should return the task id?
     except Exception, err:
         response.status=str(err)
コード例 #4
0
 def testretry(self):
     queue = TaskQueue()
     id = queue.add (channel='RERTY_TEST', name='N', content=dict(xxx=123))
     self.assertIsNotNone(id)
     lease = queue.lease (channel='RERTY_TEST', lease_seconds=1)
     self.assertEqual(id, lease['id'])
     self.assertEqual(lease['retry_count'], 1)
     time.sleep(1)
     lease = queue.lease (channel='RERTY_TEST', lease_seconds=1)
     self.assertEqual(id, lease['id'])
     self.assertEqual(lease['retry_count'], 2)
     time.sleep(1)
     lease = queue.lease (channel='RERTY_TEST', lease_seconds=1)
     self.assertEqual(id, lease['id'])
     self.assertEqual(lease['retry_count'], 3)
     time.sleep(1)
     lease = queue.lease (channel='RERTY_TEST', lease_seconds=1)
     self.assertIsNone(lease)