Beispiel #1
0
 def test_task_lists(self):
     x = HippoTask(definition={'id':'foo'},redis_client=self.redis_client)
     x.queue()
     self.assertEqual(len(HippoTask.all_tasks(self.redis_client)),1)
     self.assertEqual(len(HippoTask.waiting_tasks(self.redis_client)),1)
     x.work()
     self.assertEqual(len(HippoTask.working_tasks(self.redis_client)),1)
     self.assertEqual(len(HippoTask.waiting_tasks(self.redis_client)),0)
     x.finish()
     self.assertEqual(len(HippoTask.working_tasks(self.redis_client)),0)
     x.delete()
     self.assertEqual(len(HippoTask.all_tasks(self.redis_client)),0)
Beispiel #2
0
 def _rcile():
     # give time for driver to connect first
     time.sleep(5)
     while True:
         # delete any ancient tasks so that we don't have them clog things up forever
         HippoTask.cleanup_old_tasks(redis_client)
         try:
             running_task_ids = [dict(task_id={'value':t.mesos_id}) for t in HippoTask.working_tasks(redis_client)]
             if running_task_ids:
                 logging.info('Reconciling %d tasks' % len(running_task_ids))
                 driver.reconcileTasks(running_task_ids)
         except redis.exceptions.ConnectionError:
             logging.warning('Redis Connection Error in Reconcile Thread')
         time.sleep(60 * 15)