I am running a lot of builds using Docker in MacOS. Eventually, a lot of build cache is accumulating, e.g. this is what I see in docker system df
:
YPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 22 0 9.67GB 9.67GB (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 1006 0 258GB 258GB
Run Code Online (Sandbox Code Playgroud)
Is there a way to clean items from the build cache? I can see detailed list of them, e.g.:
CACHE ID CACHE …
Run Code Online (Sandbox Code Playgroud) 亚马逊最近更改了他们的API,现在似乎无法使用这些API以编程方式访问我在亚马逊上的WishList.除了屏幕抓取之外,有人知道有什么方法吗?也许有些第三方服务(我不介意只使用公共数据)?
我们有一个REST API,用于处理应用程序后端.我们需要实现一个冲突预防功能,编辑请求(POST/PUT)将检查记录是否在客户端上次读取和现在之间未被修改,如果是,则会告诉客户端存在冲突.
问题是如何发送冲突检查标记(最有可能是时间戳,但我们不想强制要求)以及如何返回错误.
我们希望尽可能使用标准的REST模式,所以这里我们考虑的解决方案:
使用If-Modified-Since.这里的问题是它要求使用时间戳,并且规范说你必须返回412.我们想要返回更具体的409代码,以表明它是编辑冲突,如规范中所述,而不是更通用412可能由其他原因引起.这也使客户端更容易对编辑冲突进行特殊处理,因为它们会有专用的错误代码.
使用If-Match.更好,因为我们可以使用附加到它的任何数据,但是规范再次要求使用412,尽管409更适合我们的情况.此外,规范建议If-Match与Etags相关联,我们不会将Etags用于我们的数据,因为为每条记录计算正确的Etag是不可行的.我们将标记作为记录数据的一部分用于检查,但它不作为ETag发送,现有客户端不处理ETag,因此我们不希望在可能的情况下将这一新要求强加给客户端.
使用自定义X-Header.这样可以正常工作,客户可以很容易地添加,但如果可能的话,我们更喜欢使用标准REST方法.
那么,在这种情况下推荐的方式是什么?有没有办法使用标准的REST方法,用409响应并让它一切都干净整洁?
fcntl()
使用struct flock
结构来定义和检查文件锁.不幸的是,在不同的Unix系统上,这种结构中的字段顺序不同.有没有人知道如何使用autoconf检查它或至少检查结构是否采用特定格式(例如,问题是 - 结构格式是否与Linux格式匹配)?
我使用imaplib在python中使用imap,但看起来它没有办法解析IMAP响应的细节.例如,查询如下:
msgdata = connection.fetch(num, "(BODY.PEEK[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] UID)")
Run Code Online (Sandbox Code Playgroud)
num
消息号在哪里,对于一个邮件服务器可能产生(例如):
('OK', [('1234 (BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ' UID 3456)'])
Run Code Online (Sandbox Code Playgroud)
另一个:
('OK', [('1234 (UID 3456 BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ')'])
Run Code Online (Sandbox Code Playgroud)
如您所见,消息详细信息不同,UID甚至在不同的元素中.所以问题是 - 是否有一些库可以自动对其进行排序并抽象出特定邮件服务器的功能细节?
我在python应用程序中有一个日志设置,它登录到文件和MongoDB.设置如下所示:
[logger_root]
handlers=myHandler,mongoHandler
level=DEBUG
qualname=myapp
[handler_myHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=myFormatter
args=('myapp.log', 'a',20000000,10)
[handler_mongoHandler]
class=myapp.MongoLogger.MongoLogger
level=INFO
args=('log',)
[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
Run Code Online (Sandbox Code Playgroud)
而MongoLogger的emit()函数如下:
def emit(self, record):
logdata = record.__dict__
try:
if(self.data == None):
self.initDb()
self.logtable.insert(logdata)
except:
self.handleError(record)
Run Code Online (Sandbox Code Playgroud)
日志记录就像这样完成:
logger.info("Processing account %s..." % account)
Run Code Online (Sandbox Code Playgroud)
它工作得相当好,但现在我还有一个额外的要求.我希望它有一些上下文 - 即,能够定义自定义值 - 比如帐户名 - 所以在帐户处理中完成的每个日志都会将帐户名称作为record
传递给emit
上面的一部分,并且也可用于格式化程序myFormatter
串.
是否可以使用日志记录模块执行此操作?有没有其他更好的方法可以做同样的事情?
我在Mac OS X上有一个产生随机崩溃的Apache模块.我可以使用某些操作序列重现这些崩溃,并且这些崩溃会产生Crash Reporter对话框"httpd quit unexpectedly".有没有办法导致Crash Reporter启动调试器(xcode,gdb,any)而不是只显示回溯?
我试着运行httpd
下gdb
用httpd -X
,但崩溃不会发生,然后-它发生仅当许多的httpd的正在运行一次,我发现没有办法一下子gdb连接到所有的人.所以我希望也许我可以让CrashReporter在特定进程崩溃时附加调试器 - 有没有办法做到这一点?
我正在编写一个PHPUnit测试,我需要模拟一些依赖项,但我需要一些方法,它仍然像以前一样工作.即,我有:
class Dependency {
// some stuff not important for the test
public function thisOneINeed() {
/// complex code
}
// some more stuff
}
Run Code Online (Sandbox Code Playgroud)
所以我做了这样的事情:
// prepare mock object
$dep = $this->getMockBuilder('Dependency')->disableOriginalConstructor()->getMock();
// mock out some other method that should return fixed value
$dep->expects($this->any())->method("shouldGetTrue")->will($this->returnValue(true));
// run test code, it will use thisOneINeed() and shouldGetTrue()
$result = $testSubject->runSomeCode($dep);
$this->assertEquals($expected, $result);
Run Code Online (Sandbox Code Playgroud)
一切都很好,除了方法thisOneINeed()
被嘲笑,所以我没有得到复杂的代码运行,我需要它运行runSomeCode()
正常工作.该代码 thisOneINeed()
不会调用任何其他方法,但它需要正确的测试,并且它不返回固定值,所以我不能只将静态returnValue()放在那里.并且AFAIK PHPunit没有像returnValue()
"call parent" 那样的方法.它有,returnCallback()
但据我所知,没有办法告诉它"为父类调用这个方法".
我可以创建所有方法的列表Dependency
,thisOneINeed
从中删除并setMethods() …
我有一个数据集,我从Spark(例如Parquet文件)访问,包含大量的行.我需要将这些行中的一些数据发送到外部服务,我需要对它们进行批处理,以便每次对外部服务的调用都包含一定数量的行(例如,每批1000行).基本上take(n)
是做什么,但是在大型数据集上反复地,迭代地做.执行此类任务的好方法是什么?我想它可以foreach()
手动完成并批量聚合数据,但我想知道是否有任何内置/推荐的方法.