基本的に、私がやろうとしているのは、リモートマシンでその関数を自動的に実行するデコレータをPython関数に追加することです。ユースケースで明確にするために8g
、RAMを使用することがわかっている関数があり、私のマシンには4つしかなく、RAMが多いリモートマシンでその関数を自動的に実行したいとします(明確にするために、これはおもちゃです)たとえば、AWSインスタンスでコードを実行するだけではオプションではありません)
私が想像しているのは、これらの線に沿ったものです。
@remote
def big_func(*args, **kwargs):
# Do something
def remote(func):
def func(*args, **kwargs):
resp = requests.post('<remote_ip>', data={'func': func}) # for example
return resp.content # result
return func
また、実行可能ファイルを維持しながら、関数を別のコンピューターに「送信」する方法を考案するのに問題があります。を使用することを考えましたpickle
が、残念ながら、pickle
ファイルは同じ環境で実行されることを前提としています。
リモートマシンにプリインストールされているパッケージを制御でき、POSTリクエストで追加情報を送信できますが、それだけです。
何か洞察はありますか?
おそらくこれを行う最も簡単な方法はCeleryを使用することです。@job
デコレータを提供します。その後、複数のマシンでワーカーを実行できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加