def __init__(self, available_plugins, network_retries=DEFAULT_NETWORK_RETRIES,
network_timeout=DEFAULT_NETWORK_TIMEOUT,
max_processes_nb=DEFAULT_MAX_PROCESSES_NB,
max_processes_per_hostname_nb=DEFAULT_PROCESSES_PER_HOSTNAME_NB):
"""
Args:
available_plugins (PluginsFinder): An object encapsulating the list of available plugins.
network_retries (Optional[int)]: How many times plugins should retry a connection that timed out.
network_timeout (Optional[int]): The time until an ongoing connection times out within all plugins.
max_processes_nb (Optional[int]): The maximum number of processes to spawn for running scans concurrently.
max_processes_per_hostname_nb (Optional[int]): The maximum of processes that can be used for running scans
concurrently on a single server.
Returns:
PluginsProcessPool: An object for queueing scan commands to be run concurrently.
"""
self._available_plugins = available_plugins
self._network_retries = network_retries
self._network_timeout = network_timeout
self._max_processes_nb = max_processes_nb
self._max_processes_per_hostname_nb = max_processes_per_hostname_nb
# Create hostname-specific queues to ensure aggressive scan commands targeting this hostname are never
# run concurrently
self._hostname_queues_dict = {}
self._processes_dict = {}
self._task_queue = JoinableQueue() # Processes get tasks from task_queue and
self._result_queue = JoinableQueue() # put the result of each task in result_queue
self._queued_tasks_nb = 0
评论列表
文章目录