Установка потока безопасного словаря со временем выполнения с использованием контекста.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Установка потока безопасного словаря со временем выполнения с использованием контекста.

Сообщение Anonymous »

Основное объяснение процесса:
Процесс имеет некоторые параметры инициализации, которые необходимо устанавливать динамически во время выполнения. Например, данные за определенное количество дат (final_lookback) необходимо извлечь из sql. Количество дат основано на параметре конфигурации (base_lookback) + количестве, полученном из другой таблицы. Таким образом, значение Final_lookback становится известно только после запуска процесса. Необходимо сохранить параметры динамической конфигурации для сравнения при следующем запуске процесса. Поэтому также важно, чтобы вычисляемые параметры не были случайно изменены позже в коде, тем самым меняя логику выполняемого процесса. Процесс имеет несколько параметров динамической конфигурации. Final_lookback является примером одного из них. Дополнительная сложность заключается в том, что процесс является многопоточным и некоторые динамические параметры являются общими для всех потоков, а другие зависят от потока и устанавливаются при запуске потока.
Этот вопрос состоит из двух частей:
  • Чтобы управлять всеми динамически вычисляемыми входными параметрами, чтобы весь процесс имел доступ к одним и тем же параметрам, и гарантировать, что их нельзя будет изменить позже в процессе, мы создали одноэлементный класс/объект. для хранения всех динамически изменяемых параметров времени выполнения. По сути, это список значений ключей, аналогичный тому, как configparser хранит данные. С возможностью блокировки после установки всех параметров. Кроме того, для управления параметрами, специфичными для потока, мы рассмотрели возможность создания словаря словарей, в котором каждый поток будет иметь свою собственную версию словаря параметров времени выполнения. Итак, вопрос 1. Есть ли лучший способ управления динамически устанавливаемыми параметрами конфигурации для типа процесса, описанного выше?
  • Если бы мы имели дело только с одной переменной, контекстные переменные могли бы быть подходящим местом. для хранения динамически изменяемой переменной с помощью функции-обертки для ее блокировки. Однако его необходимо передать в потоки, и, что более важно, в нашем сценарии у нас есть несколько переменных. Это поднимает идею использования контекстных переменных для хранения изменяемого объекта (словаря или класса). Кажется, что контекстные переменные могут содержать изменяемый объект, но неясно, как именно это реализовать. Должен ли класс параметров времени выполнения быть установлен один раз как синглтон при запуске, а контекстные переменные должны быть включены в класс? С контекстными переменными, содержащими словарь значений ключа? Или создать контекстные переменные отдельно и предоставить к ним доступ к классу среды выполнения - это будет означать, что для каждого файла потребуется два импорта: один для контекстных переменных и один для класса? Итак, второй вопрос: опробована ли идея использования контекстных переменных для хранения изменяемого контейнера? Будет ли это правильным решением для описанного процесса и будет ли переход к потокам работать так, чтобы каждый поток мог обновлять необходимые ему переменные contextvars, не затрагивая другие потоки?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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