Я заметил, что иногда run_coroutine_threadsafe пропускает задачу - PullRequest
1 голос
/ 26 октября 2019

И я сделал приложение, которое ожидает выполнения задачи в ближайшее время, но не ждет, чтобы получить результат, но я заметил, что иногда

asyncio.run_coroutine_threadsafe пропускал некоторые задачи, и оно случайно запускаетсянет заказа.

Я интегрировал это с колбой, покрытой uwsgi (процессы = 1, потоки = 10) run_coroutine_threadsafe может вызывать любые потоки одновременно

# get asyncio event loop
loop = asyncio.get_event_loop()

# define function to run in a thread
def InitAsyncio(loop):
    asyncio.set_event_loop(loop)
    loop.run_forever()

# create asyncio to run in thread
t = threading.Thread(target=InitAsyncio, args=(loop,))
t.start()

async def ProcessPicture(InputInt):
    try:
        print("This is a book. %d" % InputInt)
        return
    except:
        return

def main():
  for i in range(1000):
   asyncio.run_coroutine_threadsafe(ProcessPicture(i), loop)

Какубедитесь, что asyncio.run_coroutine_threadsafe всегда выполняется без пропусков, и прикажите, чтобы задача выполнялась

...