小编mar*_*ark的帖子

.NET中的多线程任务队列实现

我很头疼 - 我的服务器应用程序在负载下超过了最大的打开数据库连接.所以,我想我需要一个任务队列(也就是服务总线)来进行写数据库访问.一个队列,db写请求可以发布到它,专用线程将读取并执行.

我想知道是否有现成的组件可以做到这一点.我的要求是:

  1. 多个线程可以以最小的阻塞写入队列.
  2. 多个线程可以从队列中读取以执行发布的写入请求.在最受限制的情况下,此数字为1,但可能更多,例如开放数据库连接限制的10%.

有任何想法吗?

谢谢.

PS

我已经注意到这个这个,但也似乎与我有关.

.net multithreading

2
推荐指数
1
解决办法
2370
查看次数

用NHibernate设置正确的事务隔离模式,如何?

我们已经从sqlite切换到FireBird嵌入式服务器,因为FB似乎支持数据库的并发更新,但我们有时会遇到这些异常:

2010-10-28 15:49:31,242 [56] ERROR NetworkCatcher.Entities.Agent.Server.RunResultManager - Failed to send result to server 32W2K3SP2VM-DEV. NHibernate.Exceptions.GenericADOException: could not update: ExecutionEntry#89_19_32W2K3SP2VM-DEV][SQL: UPDATE Run SET ExecutionId = ?, Source = ?, Destination = ?, ProtocolId = ?, Duration = ?, SampleCount = ?, StartTime = ?, ServerHostName = ?, SamplesSentToServer = ?, SampleInterval = ?, Parameters = ? WHERE Id = ?] ---> FirebirdSql.Data.FirebirdClient.FbException: deadlock
update conflicts with concurrent update
concurrent transaction number is 31632 --->
FirebirdSql.Data.Common.IscException: deadlock
update conflicts with concurrent update …
Run Code Online (Sandbox Code Playgroud)

database nhibernate

2
推荐指数
1
解决办法
4676
查看次数

Fiddler没有捕获从Web服务器到应用程序服务器的WCF流量

我有两种可能的流程:

ConsoleClient -(1)-> ApplicationServer
Run Code Online (Sandbox Code Playgroud)

要么

SilverlightClient -(2)-> WebServer -(3)-> ApplicationServer
Run Code Online (Sandbox Code Playgroud)

Fiddler成功捕获(1)和(2)上的HTTP流量,但不捕获(3)上的HTTP流量.这是(1)上的示例捕获:

POST /WcfDemo/ws HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Host: il-mark-lt
Content-Length: 521
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://tempuri.org/IWcfDemoService/Add</a:Action><a:MessageID>urn:uuid:d7fde351-12fd-4872-bc26-52ff97f126e9</a:MessageID><a:ReplyTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://il-mark-lt/WcfDemo/ws</a:To></s:Header><s:Body><Add xmlns="http://tempuri.org/"><x>4</x><y>5</y></Add></s:Body></s:Envelope>

HTTP/1.1 200 OK
Content-Length: 399
Content-Type: application/soap+xml; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Sat, 17 Sep 2011 20:57:16 GMT

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://tempuri.org/IWcfDemoService/AddResponse</a:Action><a:RelatesTo>urn:uuid:d7fde351-12fd-4872-bc26-52ff97f126e9</a:RelatesTo></s:Header><s:Body><AddResponse xmlns="http://tempuri.org/"><AddResult>9</AddResult></AddResponse></s:Body></s:Envelope>
Run Code Online (Sandbox Code Playgroud)

这是(2)的一个例子:

POST /WcfDemoService.svc/ws HTTP/1.1
Host: localhost:56970
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,application/json
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.6,he-IL;q=0.5,he;q=0.4,ru-RU;q=0.3,ru;q=0.1
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 …
Run Code Online (Sandbox Code Playgroud)

fiddler

2
推荐指数
1
解决办法
2791
查看次数

如何获得最接近包含除.hgtags之外的其他更改的给定修订版本?

我有一个修订哈希键.我想获得包含任何内容的最接近的修订版,但是.hgtags.

例如,考虑Mercurial历史的以下片段:

D:\CI\NC\8.0>hg log -l3 -b 8.0 -v
changeset:   1768:633cf1f61665
branch:      8.0
tag:         tip
user:        ci
date:        Wed Nov 16 21:06:20 2011 +0200
files:       .hgtags
description:
Replaced tag 'good.NC.16' with 'rejected.NC.16' for changeset 9451e8f187b1


changeset:   1767:6cad328c622c
branch:      8.0
parent:      1765:9451e8f187b1
user:        ci
date:        Wed Nov 16 21:04:26 2011 +0200
files:       .hgtags
description:
Added tag 'good.NC.16' for changeset 9451e8f187b1


changeset:   1765:9451e8f187b1
branch:      8.0
tag:         rejected.NC.16
user:        gilad
date:        Tue Nov 15 18:26:09 2011 +0200
files:       .hgignore
description:
update
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果给定的修订版本是633cf1f61665,那么我正在寻找修订版本 …

version-control mercurial dvcs directed-acyclic-graphs

2
推荐指数
1
解决办法
165
查看次数

org.restlet.ext.guice 的状态是什么?

在restlet中寻找guice支持我遇到了这篇文章 - http://wiki.restlet.org/developers/172-restlet/257-restlet/284-restlet.html

但是 2.0(稳定版)和 2.1(候选发布版)都不包含 org.restlet.ext.guice.jar

所以,我的问题是它的状态是什么?我在哪里可以下载它?我正在使用restlet 2.0

谢谢。

restlet guice restlet-2.0

2
推荐指数
1
解决办法
784
查看次数

哪种C++概念更适合建模数据库查询 - 流或输入迭代器?

我想将数据库查询视为标准C++输入迭代器.另一方面,可以将数据库查询视为查询结果项的输入流.您认为db查询的更好模型是什么 - 输入迭代器还是输入流?

就个人而言,我的印象是C++ IO流应该只对字符进行操作,在那里我从未见过任何一个流的例子,其中字符不是char或者wchar_t.我理解,流的模板化本质允许我将任何东西作为一个字符传递,所以从理论上讲,似乎我可以将查询结果项作为一个字符来处理流媒体,但我不确定它是否是一个好主意.

建议是受欢迎的.

谢谢.

c++ iterator stream

2
推荐指数
1
解决办法
271
查看次数

安全地重新定义BOOST_FOREACH宏

我有以下宏:

#define FOREACH(decl, c) BOOST_FOREACH(decl, std::make_pair((c).begin(), (c).end()))
Run Code Online (Sandbox Code Playgroud)

(我正在使用这个宏,因为我的容器没有实现可变迭代API.)

它的问题是,它c被评估两次.

我的问题是这个宏可以修复,以便:

  1. c 最多评估一次
  2. 为满足第一个条件而创建的任何局部变量仅存在于相应的foreach范围内.

c++ boost boost-foreach

2
推荐指数
2
解决办法
440
查看次数

在java中有静态jar链接这样的东西吗?

在java中是否有静态jar链接?

我看到它的方式是对jar的静态链接从jar中提取相关的类文件并将它们插入到最终的产品jar中.当然,它应该将库jar中的任何相关许可文件复制到产品jar中.

动机.

我想使用ExpandPropertiesant.jar中的类.该功能本身可能只占1.8M的一小部分,这是ant.jar的大小.

java jar

2
推荐指数
1
解决办法
1568
查看次数

使用powershell删除巨大(300M)文本文件的顶行

这个问题与使用Powershell删除文本文件顶行之间的区别在于我的文件很大(超过300M).

我现在使用的技术是基于该问题的答案之一,但对于大型文件来说似乎效率低下.是否有更快(更不漂亮)的方式呢?

powershell file-io

2
推荐指数
1
解决办法
2325
查看次数

如何避免在以下javascript代码中使用"数组文字符号"jslint错误

可能重复:
var x = new Array()有什么问题;

if (!Number.prototype.toZeroPaddedString) {
  Number.prototype.toZeroPaddedString = function (count) {
    "use strict";
    var str = this.toString();
    return (new Array(count + 1 - str.length)).join('0') + str;
  };
}
Run Code Online (Sandbox Code Playgroud)

我希望我的代码能够通过jsLint标准清理,但是,我无法想象如何根据我想做的事情摆脱这个错误.

有什么建议?

谢谢.

javascript jslint

2
推荐指数
1
解决办法
2639
查看次数