示例#1
0
    def test_failed_tasks_saved(self):
        boss.start(action=failed_action)
        for i in range(10):
            task = boss.Task(i, {})
            boss.assign_task(task)

        total_check = 0
        while not boss.have_all_tasks_done():
            time.sleep(1)
            total_check += 1
            if total_check > 10:
                self.fail('workers have not stpped in time')

        boss.stop()
        for k, v in boss.tasks().items():
            self.assertTrue(v.is_failed())
示例#2
0
    def test_boss_can_shut_down(self):
        boss.start(action=half_done_half_failed_action)
        for i in range(10):
            task = boss.Task(i, {})
            boss.assign_task(task)

        total_check = 0
        while not boss.have_all_tasks_done():
            time.sleep(1)
            total_check += 1
            if total_check > 10:
                self.fail('workers have not stpped in time')

        boss.stop()
        for t in boss._WORKING_THREADS:
            self.assertFalse(t.isAlive())
示例#3
0
    def run(self):
        try:
            boss.start(num_workers=self.num_worker,
                       action=streambot._download_task_action)
            self._get_mpd()
            if self.mpd.is_live():
                self._get_live_segments()
            else:
                self._get_segments()

            while not boss.have_all_tasks_done():
                time.sleep(1)

        except Exception as e:
            logger.exception(e)
        finally:
            boss.stop()
            self._report()
示例#4
0
    def test_duplicated_tasks_run_only_once(self):
        boss.start(action=half_done_half_failed_action)
        num_unique_tasks = 10
        for i in range(num_unique_tasks):
            task = boss.Task(i, {})
            # assign each task twice
            boss.assign_task(task)
            boss.assign_task(task)

        total_check = 0
        while not boss.have_all_tasks_done():
            time.sleep(1)
            total_check += 1
            if total_check > 10:
                self.fail('workers have not stpped in time')

        boss.stop()
        self.assertEqual(len(boss.tasks()), num_unique_tasks)
示例#5
0
    def test_tasks_returns_all_assigned_tasks(self):
        boss.start(action=done_action)
        num_tasks = 10
        for i in range(num_tasks):
            task = boss.Task(i, {})
            boss.assign_task(task)

        total_check = 0
        while not boss.have_all_tasks_done():
            time.sleep(1)
            total_check += 1
            if total_check > 10:
                self.fail('workers have not stpped in time')

        boss.stop()
        assigned_tasks = boss.tasks()
        self.assertTrue(len(assigned_tasks), num_tasks)
        for k, v in boss.tasks().items():
            self.assertTrue(v.id in range(num_tasks))
示例#6
0
def stop():
    boss.blocking_print('Stop downloader')
    boss.stop()
示例#7
0
def stop():
    boss.blocking_print('Stop downloader')
    boss.stop()