所述文档为log4j2配置提供了一个很好的示例XML相当于默认配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)
等效文件看起来像(有效)YAML?
我有一组非负值.我想构建一个值为20的值数组,以便它们与第一个数组成比例.
这将是一个简单的问题,除了我希望比例数组总和精确到20,补偿任何舍入误差.
例如,数组
input = [400, 400, 0, 0, 100, 50, 50]
Run Code Online (Sandbox Code Playgroud)
会屈服
output = [8, 8, 0, 0, 2, 1, 1]
sum(output) = 20
Run Code Online (Sandbox Code Playgroud)
但是,大多数情况都会有很多舍入错误,比如
input = [3, 3, 3, 3, 3, 3, 18]
Run Code Online (Sandbox Code Playgroud)
天真的收益率
output = [1, 1, 1, 1, 1, 1, 10]
sum(output) = 16 (ouch)
Run Code Online (Sandbox Code Playgroud)
是否有一种分配输出数组的好方法,每次最多可以增加20个?
我有一个缓慢的内存泄漏的应用程序,由于各种原因,我无法摆脱.因此,我想使用让我的工人定期死亡和复活的旧技巧.
(即在多处理池中使用与maxtasksperchild相同的策略......"......在其他系统(例如Apache,mod_wsgi等)中找到的频繁模式可以释放工作人员所拥有的资源,这样可以让池中的工作人员完成退出之前只有一定数量的工作,被清理并产生一个新的过程以替换旧的......")
到目前为止,我能够想到的最好的方法是让一个线程可以休眠,然后再打电话os._exit(-1)
.
这是要走的路,还是有更好的方法定期回收我的工人?
这是我现在要走的路:
class Quitter(Thread):
def run(self):
while True:
time.sleep(random.randrange(5, 7)):
print str(os.getpid())
os._exit(-1)
Quitter().start()
Run Code Online (Sandbox Code Playgroud)
Gunicorn响应:
2013-03-13 03:21:24 [6487] [INFO] Booting worker with pid: 6487
...
2013-03-13 03:21:30 [6492] [INFO] Booting worker with pid: 6487
Run Code Online (Sandbox Code Playgroud)