如何在多台机器上运行相同的python块

时间:2014-08-20 23:03:13

标签: python environment remote-server

基本上,我尝试做的是在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

我无法设计出一种方式来发送&#34;将功能转移到另一台计算机,同时确保它仍然可执行。我考虑使用pickle,但遗憾的是pickle文件假设您将在相同的环境下运行。

我可以控制远程计算机上任何预安装的软件包,我可以通过POST请求发送其他信息,但是有关它的信息。

任何见解?

1 个答案:

答案 0 :(得分:1)

可能最简单的方法是使用Celery。它提供了@job装饰器;然后,您可以在多台计算机上运行worker。