有些日子我一直在搜索错误的工作解决方案
Error: EMFILE, too many open files
似乎很多人都有同样的问题.通常的答案是增加文件描述符的数量.所以,我试过这个:
sysctl -w kern.maxfiles=20480
,
默认值是10240.这在我看来有点奇怪,因为我在目录中处理的文件数量低于10240.更奇怪的是,在我增加了文件描述符的数量之后,我仍然收到相同的错误.
第二个问题:
经过多次搜索后,我找到了解决"太多打开文件"问题的方法:
var requestBatches = {};
function batchingReadFile(filename, callback) {
// First check to see if there is already a batch
if (requestBatches.hasOwnProperty(filename)) {
requestBatches[filename].push(callback);
return;
}
// Otherwise start a new one and make a real request
var batch = requestBatches[filename] = [callback];
FS.readFile(filename, onRealRead);
// Flush out the batch on complete
function onRealRead() {
delete requestBatches[filename];
for (var i = 0, l = batch.length; i …
Run Code Online (Sandbox Code Playgroud) 我正在使用Python 2.7在os x 10.6上编写firefox 5.1和selenium webdrive v.2的测试套件.
除了创建单例类之外,一切都工作正常,这应该只保证一个firefox实例:
def singleton(cls):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return getinstance
@singleton
class Fire(object):
def __init__(self):
self.driver = webdriver.Firefox()
def getdriver(self):
return self.driver
def close_(self):
self.driver.close()
def get(self, url):
self.driver.get(url)
return self.driver.page_source
f = Fire()
f.close_()
Run Code Online (Sandbox Code Playgroud)
此时如果我f=Fire()
再次打电话没有任何反应.不会创建新实例.我的问题是为什么我会看到这种行为?我怎么做的?
我的第二个问题,如果我输入:
isinstance(f, Fire)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
Run Code Online (Sandbox Code Playgroud)
这对我来说很奇怪......根据我的理解它应该回归 True
最后一个问题:
当我有单身课时,我应该能够做到:
f = …
Run Code Online (Sandbox Code Playgroud)