當前位置: 首頁>>代碼示例>>Python>>正文


Python Pool.apply_async方法代碼示例

本文整理匯總了Python中w3af.core.controllers.threads.threadpool.Pool.apply_async方法的典型用法代碼示例。如果您正苦於以下問題:Python Pool.apply_async方法的具體用法?Python Pool.apply_async怎麽用?Python Pool.apply_async使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在w3af.core.controllers.threads.threadpool.Pool的用法示例。


在下文中一共展示了Pool.apply_async方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_increase_number_of_workers

# 需要導入模塊: from w3af.core.controllers.threads.threadpool import Pool [as 別名]
# 或者: from w3af.core.controllers.threads.threadpool.Pool import apply_async [as 別名]
    def test_increase_number_of_workers(self):
        worker_pool = Pool(processes=2,
                           worker_names='WorkerThread',
                           maxtasksperchild=3)

        self.assertEqual(worker_pool.get_worker_count(), 2)

        def noop():
            return 1 + 2

        for _ in xrange(12):
            result = worker_pool.apply_async(func=noop)
            self.assertEqual(result.get(), 3)

        self.assertEqual(worker_pool.get_worker_count(), 2)

        worker_pool.set_worker_count(4)

        # It takes some time...
        self.assertEqual(worker_pool.get_worker_count(), 2)

        for _ in xrange(12):
            result = worker_pool.apply_async(func=noop)
            self.assertEqual(result.get(), 3)

        self.assertEqual(worker_pool.get_worker_count(), 4)

        worker_pool.terminate()
        worker_pool.join()
開發者ID:foobarmonk,項目名稱:w3af,代碼行數:31,代碼來源:test_threadpool.py

示例2: test_multiple_append_uniq_group

# 需要導入模塊: from w3af.core.controllers.threads.threadpool import Pool [as 別名]
# 或者: from w3af.core.controllers.threads.threadpool.Pool import apply_async [as 別名]
    def test_multiple_append_uniq_group(self):
        def multi_append():
            for i in xrange(InfoSet.MAX_INFO_INSTANCES * 2):
                vuln = MockVuln()
                kb.append_uniq_group('a', 'b', vuln, group_klass=MockInfoSetTrue)

            info_set_list = kb.get('a', 'b')

            self.assertEqual(len(info_set_list), 1)

            info_set = info_set_list[0]
            self.assertEqual(len(info_set.infos), InfoSet.MAX_INFO_INSTANCES)
            return True

        pool = Pool(2)

        r1 = pool.apply_async(multi_append)
        r2 = pool.apply_async(multi_append)
        r3 = pool.apply_async(multi_append)

        self.assertTrue(r1.get())
        self.assertTrue(r2.get())
        self.assertTrue(r3.get())

        pool.terminate()
        pool.join()
開發者ID:andresriancho,項目名稱:w3af,代碼行數:28,代碼來源:test_knowledge_base.py

示例3: test_worker_stats_not_idle

# 需要導入模塊: from w3af.core.controllers.threads.threadpool import Pool [as 別名]
# 或者: from w3af.core.controllers.threads.threadpool.Pool import apply_async [as 別名]
    def test_worker_stats_not_idle(self):
        worker_pool = Pool(processes=1, worker_names='WorkerThread')

        def sleep(sleep_time, **kwargs):
            time.sleep(sleep_time)

        args = (2,)
        kwds = {'x': 2}
        worker_pool.apply_async(func=sleep, args=args, kwds=kwds)

        # Let the worker get the task
        time.sleep(0.3)

        # Got it?
        self.assertFalse(worker_pool._pool[0].worker.is_idle())
        self.assertEqual(worker_pool._pool[0].worker.func_name, 'sleep')
        self.assertEqual(worker_pool._pool[0].worker.args, args)
        self.assertEqual(worker_pool._pool[0].worker.kwargs, kwds)
        self.assertGreater(worker_pool._pool[0].worker.job, 1)
開發者ID:knucker,項目名稱:w3af,代碼行數:21,代碼來源:test_threadpool.py

示例4: test_inspect_threads

# 需要導入模塊: from w3af.core.controllers.threads.threadpool import Pool [as 別名]
# 或者: from w3af.core.controllers.threads.threadpool.Pool import apply_async [as 別名]
    def test_inspect_threads(self):
        worker_pool = Pool(processes=1, worker_names='WorkerThread')

        def sleep(sleep_time, **kwargs):
            time.sleep(sleep_time)

        args = (2,)
        kwds = {'x': 2}
        worker_pool.apply_async(func=sleep, args=args, kwds=kwds)

        # Let the worker get the task
        time.sleep(0.3)

        worker_states = worker_pool.inspect_threads()
        self.assertEqual(len(worker_states), 1)

        worker_state = worker_states[0]

        self.assertEqual(worker_state['func_name'], 'sleep')
        self.assertEqual(worker_state['args'], args)
        self.assertEqual(worker_state['kwargs'], kwds)
        self.assertEqual(worker_state['idle'], False)
開發者ID:knucker,項目名稱:w3af,代碼行數:24,代碼來源:test_threadpool.py

示例5: test_max_queued_tasks

# 需要導入模塊: from w3af.core.controllers.threads.threadpool import Pool [as 別名]
# 或者: from w3af.core.controllers.threads.threadpool.Pool import apply_async [as 別名]
    def test_max_queued_tasks(self):
        worker_pool = Pool(processes=1, max_queued_tasks=2)

        # These tasks should be queued very fast
        worker_pool.apply_async(func=time.sleep, args=(2,))
        worker_pool.apply_async(func=time.sleep, args=(2,))
        worker_pool.apply_async(func=time.sleep, args=(2,))
        worker_pool.apply_async(func=time.sleep, args=(2,))

        # Now the pool is full and we need to wait in the main
        # thread to get the task queued
        start = time.time()

        worker_pool.apply_async(func=time.sleep, args=(2,))

        spent = time.time() - start

        worker_pool.close()
        worker_pool.join()

        self.assertLess(spent, 2.1)
        self.assertGreater(spent, 1.9)
開發者ID:andresriancho,項目名稱:w3af,代碼行數:24,代碼來源:test_threadpool.py


注:本文中的w3af.core.controllers.threads.threadpool.Pool.apply_async方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。