Python:发送二进制文件时xmlrpc内存不足

时间:2014-11-12 16:03:27

标签: python-2.7 memory xmlrpclib

我得到了用python编写的这个简单的xmlrpc服务器脚本。我将内存限制为512mb,以模拟脚本运行的环境。

import SimpleXMLRPCServer
import resource

MEMORY_LIMIT = 512
resource.setrlimit(resource.RLIMIT_AS, (MEMORY_LIMIT * 1048576L, -1L))

class Functions:
  def foo(self, file):
    print "received file"

server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8000))
server.allow_none = True
server.register_instance(Functions())
server.serve_forever()

然后我得到了这个客户端脚本:

import xmlrpclib
import sys

client = xmlrpclib.Server('http://localhost:8000')

file = open(sys.argv[1], 'r')
binary = xmlrpclib.Binary(file.read())

client.foo(binary)

当我发送一个20mb的文件时,我得到以下例外:

xmlrpclib.Fault: <Fault 1: "<type 'exceptions.MemoryError'>:">

为什么我不能将10mb文件发送到拥有512mb内存的服务器?

0 个答案:

没有答案