Python3 Asyncio Queue - получить в очереди в фоновом режиме? - PullRequest
0 голосов
/ 17 октября 2018

Привет, у меня проблема с асинхронными очередями.У меня есть «сервер» asyncio с TCP-соединениями, и я хотел бы сделать что-то вроде уборщика очереди.

loop = asyncio.get_event_loop()
coro = asyncio.start_server(server, '127.0.0.1', 8888, loop=loop)
server = loop.run_until_complete(coro)



print('Serving on {}'.format(server.sockets[0].getsockname()))

while True:
    loop.run_until_complete(main())

и main () - это

async def main():
    if queue.empty() == True:
        pass
    while queue.empty() != True:
        item = await queue.get()
        print(item)
        print("queue items: ")
        print(queue.qsize())

Но я не думаю, что это лучший метод для выполнения задач из очереди.Я хочу сделать второй скрипт, который думает только очередь.Есть ли какой-нибудь способ подключиться к моей очереди серверов снаружи и сделать что-то с этим?

Теперь это выглядит так: клиент -> сервер => получить задачу и добавить ее в очередь -> сделать цикл чистым.Это не асинхронно, потому что логически у меня никогда не будет больше, чем 1 мысль в очереди.

Я хочу:

клиент -> сервер => получить задачу <= очистить задачи извне </p>

...