Возвращает значение, пока задача greenlet выполняется с gevent - PullRequest
0 голосов
/ 09 мая 2020

Я новичок в python и асинхронном c кодировании. Я пытаюсь запустить трудоемкую функцию, которая ничего не возвращает и работает в фоновом режиме, возвращая значение во время работы. Я пытаюсь использовать для этого gevent. Я могу успешно запланировать и запустить гринлет, но возвращаемое значение все еще ожидает завершения sh выполнения всего перед возвратом. Как я могу переформатировать это, чтобы я получал возвращаемое значение, как только выборка будет успешной, пока продолжается фоновый процесс?

def run_the_timely_function(self): 
   data_list = fetch.example_fetch()
   threads = [
      gevent.spawn(self.timely_function, data_list)
   ]
   gevent.joinall(threads)
   return len(data_list)

def timely_function(self, data_list: list):
   # some expensive sql queries and complicated data mapping that does not return anything 
   # and just needs to successfully run in the background 
...