Я работаю над приложением python, которое требует синхронизации данных между удаленным местоположением (как в ec2) и локальным местоположением (как мой ноутбук). Поскольку некоторые данные содержат очень большие массивы, и я уже успешно использую dask в других местах приложения, я бы хотел использовать dask для этого процесса.
В настоящее время я пытаюсь использовать dask.distributed.Variable
для синхронизации данных - сначала разбрасывать данные, если это массив - просто установить их напрямую. Затем я могу запустить команду get
для получения данных, но я действительно хотел бы иметь возможность подключить обратный вызов, который будет запускаться в моем локальном местоположении всякий раз, когда данные устанавливаются в удаленном местоположении или в визе. наоборот.
Например, что-то вроде
# On remote
from dask.distributed import LocalCluster, Client, Variable
cluster = LocalCluster()
client = Client(cluster)
# Define variable
aa = Variable('a')
# On local
from dask.distributed import Client, Variable
client = Client(cluster.scheduler.address)
# Define variable
aa = Variable('a')
# Define my custom callback
def my_callback():
print(aa.get())
# Do some connection magic ?????
, а затем, если
# On remote
aa.set(1)
Запустить мой обратный вызов на моем локальном.
Естьтакая парадигма возможна здесь?