Функции Asyncio, привязанные к ЦПPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Функции Asyncio, привязанные к ЦП

Сообщение Anonymous »

У меня есть веб-приложение «Торнадо», которое в основном является асинхронным, но имеет большие участки работы, привязанные к процессору, где оно выполняет итерацию по данным. В большинстве случаев имеется всего несколько сотен строк, но иногда их может быть несколько десятков тысяч, что блокирует цикл событий на несколько секунд. Мне интересно, какой метод преобразования этих функций синхронизации в асинхронный является предпочтительным. Мои два варианта выглядят так:

Код: Выделить всё

# Iterate over rows from db
i = 0
for row in rows:
i += 1
if i % 10000 == 0:
await asyncio.sleep(0)
# Do some processing
или

Код: Выделить всё

# func being the above code that iterates over rows without sleep
executor = concurrent.futures.ThreadPoolExecutor(max_workers=10)
await asyncio.get_event_loop().run_in_executor(executor, func)
Я знаю, что чтобы избежать ограничений GIL, мне следует использовать ProcessPoolExecutor, но в большинстве случаев количество строк, которые он должен обработать, довольно мало, поэтому использование ProcessPoolExecutor может не оправдать накладных расходов.< /п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... -functions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Функции Asyncio, привязанные к ЦП
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Asyncio Async Funcitons вешает с Asyncio.gather. (Код работает без Asyncio.gather)
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как получить все атрибуты объекта Python `pxr.Usd.Prim`, привязанные к объекту C++
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Как получить все атрибуты объекта Python `pxr.Usd.Prim`, привязанные к объекту C++
    Anonymous » » в форуме C++
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Глобальные переменные C++, привязанные ко всем юнит-тестам после установки
    Anonymous » » в форуме C++
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»