我有一个基于Perl的测试套件,有10,000多个测试,我想让它运行得更快.我已经使用了-j
标志进行了测试prove
,我发现大多数但并非所有的测试都准备好并行运行.
虽然我可以努力使其余的测试"并行友好",但我希望总有一些测试不是.管理这个的好方法是什么?我希望能够有效地运行整套测试,并且如果需要的话,可以很容易地将测试标记为"非并行就绪".
以下是我看到的一些选项:
TAP
我尚未恢复的结果流合并在一起.我不太关心如何管理例外列表.要么我可以将列表作为测试工具基础结构的一部分保存在文件中,要么我可以在每个测试标题中放置一些标记它的内容,并且我们的测试工具可以动态地确定异常列表.
(测试套件部分基于Test :: Class,我也会看看Test :: Class :: Load来加速它.)
我对编码密码有一些问题,我该怎么办呢.编码类型md5
digest(data text, type text) returns bytea;
CREATE OR REPLACE FUNCTION md(bytea) returns text AS $$
SELECT encode(digest($1, 'sha1'), 'md5')
$$ LANGUAGE SQL STRICT IMMUTABLE;
INSERT INTO "login"(login, password, employee_id)
VALUES ( 'email',crypt('password', md('md5')), 1);
Run Code Online (Sandbox Code Playgroud)
*** 错误 ***
ERROR: syntax error at or near "digest"
SQL state: 42601
Character: 1
Run Code Online (Sandbox Code Playgroud) 我无法将SVG形状导入Dia.它期待一种.shape格式(参见http://dia-installer.de/howto/create_shape/index.html)
一种解决方案是将Dia图导出为SVG并在Inkscape中编辑它,但我真的想知道如何将一些SVG剪贴画直接导入Dia.
我正在做一个基于网站的项目的志愿者,该项目试图在添加任何JavaScript以进行增强之前使所有页面完全可用的JavaScript免费,并且我被要求调查是否可以纯粹通过HTML/CSS处理特定场景.
我们有一个填充的表单,以帮助我们过滤通过GET操作页面更新后显示在屏幕上的票证列表,这本身工作正常,但是对当前实现的关注是URL不能是成为一个永久的链接.但是,要保持永久链接尽可能最小的请求是仅为填充了某些内容的字段发送GET参数(因此,为空白字段抑制GET参数),而不是为每个表单设置不同的GET参数页面上的字段.
我已经想到了几种可以实现的方法,大多数包括JavaScript(例如:创建带有ids但没有名称的字段和带有使用JS从字段中获取数据的名称的隐藏字段),还有一个可能是使用可以永久使用的可读字符串重定向到GET的POST操作.然而,如果可能的话,主角开发者不希望通过POST /重定向方法.
话虽这么说,我正在努力确保我在我强烈推动POST /重定向解决方案之前覆盖我的所有基础并询问专家对此的想法:是否有一种方法仅使用HTML和CSS直接抑制GET参数不使用POST /重定向的空白字段的表单?
如果我将字符写入é
文件并用十六进制编辑器打开它,我可以看到字节0xC3,0xA9.
从维基百科,第一个字节称为前导字节,第二个字节称为尾随字节.0xC3它是一个元数据字节,这意味着,它的1个字节,0xA9,但对于Unicode值编码的字符é
是0xE9.
我基本上想知道é
它为什么用0xA9而不是0xE9编码.文本编辑器如何从0xC3A9转换为0xE9?任何轮班操作?
我收到错误"无法从对象中提取地理键,格式错误的几何体?".多边形是关闭的,格式看起来很好,因为它正确插入Mongo.我正在使用Mongo版本2.6.3,在Centos 6.5 x64上运行.
下面的多边形有什么问题?我非常密切地关注了Mongo的例子.
db.test.remove({});
db.test.insert({testPoly: {type: "Polygon", coordinates: [[0,0],[0,20],[10,30],[20,20],[20,0],[0,0]]}});
db.test.ensureIndex({testPoly: "2dsphere" });
db.test.find();
/* 0 */
{
"connectionId" : 2385,
"err" : "Can't extract geo keys from object, malformed geometry?: { _id: ObjectId('54008301eb55d4628c080370'), testPoly: { type: \"Polygon\", coordinates: [ [ 0.0, 0.0 ], [ 0.0, 20.0 ], [ 10.0, 30.0 ], [ 20.0, 20.0 ], [ 20.0, 0.0 ], [ 0.0, 0.0 ] ] } }",
"code" : 16755,
"n" : 0,
"ok" : 1
}
/* 0 */ …
Run Code Online (Sandbox Code Playgroud) 我有点想知道我正在做一张大桌子的更新,我是否需要担心锁。
我有一张桌子,看起来像这样:
CREATE TABLE "ItemsToProcess"(
"id" text,
"WorkerInstanceId" text,
"ProcessingStartTime" timestamp with time zone,
"UpdatedTime" timestamp with time zone,
CONSTRAINT "ITP_PK" PRIMARY KEY ("id")
)WITH (
OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)
最初,此表中有〜200万行,并且默认情况下以及运行开始时,仅填充的ID,WorkerInstanceId和两个时间戳为null。
发生的情况是,某些工作人员应用程序(至少两个,但在生产中大约为10-13)会从该表中标记一批ID-s(我计划将batchSize设置为200)进行处理。处理过程中发生的事情现在并不重要。批处理的标记如下所示:
UPDATE "ItemsToProcess"
SET "WorkerInstanceId" = ?, "ProcessingStartTime" = current_timestamp()
WHERE "WorkerInstanceId" is NULL
LIMIT 200;
Run Code Online (Sandbox Code Playgroud)
我的问题是,在进行更新之前,我是否需要担心锁定要更新的行?
Postgres文档说:
排他性
与SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE和ACCESS EXCLUSIVE锁定模式冲突。
命令UPDATE,DELETE和INSERT在目标表上获得此锁定模式(除了对任何其他引用表的ACCESS SHARE锁定之外)。通常,任何修改表中数据的命令都将获取此锁定模式。
因此,我认为每当一个工作人员进行此更新时,整个表将被锁定,将更新200行,最后释放该锁。在锁到位之前,其他工人正在等待锁释放。我是对的还是我想念什么
谢谢您的帮助!