def execute(token): message = token.message # create and send result message correlationid = message.correlationid receiveraddress = message.sender.hostname category = to_response_category(message.category) body = token.result resultmessage = messaging_uow.store_outgoing(receiveraddress, correlationid, category, body) process_outgoingmessage.delay(resultmessage.id)
def get(self, receiveraddress): query = self.get_parameter('query') if query is None: raise badrequest('parameter "query" not provided') # persist so it can be processed in the background correlationid = gen_correlationid() message = messaging_uow.store_outgoing(receiveraddress, correlationid, MessageCategory.SPARQL_QUERY, query) try: outgoing = process_outgoingmessage.delay(message.id) def check(): return outgoing.ready() and messaging_uow.is_answered(message) self.asyncwait(check, 1, 30, self.write_responsetomessage, message) except TimeoutError: raise timeout('the incoming "SparqlQuery" request has timed out') except Exception: raise servererror('the incoming "SparqlQuery" request failed')