(self)
| 113 | |
| 114 | |
| 115 | async def runQuery(self): |
| 116 | |
| 117 | try: |
| 118 | # Send begin-nlweb-response message at the start |
| 119 | await self.message_sender.send_begin_response() |
| 120 | tasks = [] |
| 121 | if (ENABLE_QUERY_FANOUT): |
| 122 | queries = await self.whoQueryRewrite() |
| 123 | else: |
| 124 | queries = [self.query] |
| 125 | for query in queries: |
| 126 | tasks.append(asyncio.create_task(self.whoRetrieveInt(query))) |
| 127 | await asyncio.gather(*tasks, return_exceptions=True) |
| 128 | |
| 129 | self.ranker = WhoRanking(self, self.final_retrieved_items) |
| 130 | await self.ranker.do() |
| 131 | |
| 132 | # Send end-nlweb-response message at the end |
| 133 | await self.message_sender.send_end_response() |
| 134 | |
| 135 | return [msg.to_dict() for msg in self.messages] |
| 136 | |
| 137 | except Exception: |
| 138 | # Send end-nlweb-response even on error |
| 139 | await self.message_sender.send_end_response(error=True) |
| 140 | raise |
no test coverage detected