本文整理汇总了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()
示例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()
示例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)
示例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)
示例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)