def test_send_rasp_result_data(preprocessor_fixture): """ 测试rasp_result型json data处理 """ json_data = http_data["rasp_result"] try: r = http_sender.send_json(json_data, api_path) except Exception as e: assert False == e else: assert r.status_code == 200 assert json.loads(r.text)["status"] == 0 data = None for i in range(10): try: data = Communicator().get_data_nowait("rasp_result_queue_0") except Exception: time.sleep(0.5) assert data.get_request_id() == json_data["context"]["requestId"]
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)