async def _fetch_from_queue(self): """ 获取扫描请求的RaspResult, 并分发给扫描插件 """ queue_name = "rasp_result_queue_" + self.module_id sleep_interval = 0.1 continuously_sleep = 0 Logger().debug("Fetch task is running, use queue: " + queue_name) while True: if Communicator().get_value("config_version") > self.scan_config["version"]: self._update_scan_config() try: data = Communicator().get_data_nowait(queue_name) Logger().debug("From rasp_result_queue got data: " + str(data)) result_receiver.RaspResultReceiver().add_result(data) Logger().debug("Send data to rasp_result receiver: {}".format( data.get_request_id())) continuously_sleep = 0 except exceptions.QueueEmpty: if continuously_sleep < 10: continuously_sleep += 1 await asyncio.sleep(sleep_interval * continuously_sleep)
def _register_result(self, req_id): """ 封装RaspResultReceiver的方法 """ result_receiver.RaspResultReceiver().register_result(req_id)