В основном это проблема в Python 3. Я надеюсь, что они меняют ее.
Bugged (работает в версии 2.7):
x = 4
y = [x+i for i in range(1)]
Чтобы обойти это (работает в 3+) :
x = 4
y = (lambda x=x: [x+i for i in range(1)])()
Как обычно решается эта проблема?
blockquote>Использование одиночного писателя - хорошее решение. Таким образом вы гарантируете, что не дублируете работу, и обновляете кластеры с сохранением состояния, используя события в том порядке, в котором они были записаны в хранилище событий.
Я действительно не хочу создавать синглтон-подписчика для каждого кластера, который прослушивает обновления, он делает этот синглтон единственной точкой отказа ...
blockquote>Это можно легко смягчить, потому что эта одноэлементная служба не имеет состояния, поэтому ее можно легко перезапустить или даже переместить на другой хост в случае сбоя. Если вы используете контейнерный оркестратор (например, Docker Swarm или Kubernetes), это очень просто.