我有一个简单的查询返回25,026行:
MySqlCommand cmd = new MySqlCommand("SELECT ID FROM People", DB);
MySqlDataReader reader = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)
(ID是一个int.)如果我这样做:
int i = 0;
while (reader.Read()) i++;
Run Code Online (Sandbox Code Playgroud)
i将等于25026.但是,我需要对循环中的每个ID进行一些处理; 每次迭代最终都会在数百毫秒内完成.
int i = 0;
MySqlCommand updater = new MySqlCommand("INSERT INTO OtherTable (...)", anotherConnection);
updater.Prepare();
while (reader.Read()) {
int id = reader.getInt32(0);
// do stuff, then
updater.ExecuteNonQuery();
i++;
}
Run Code Online (Sandbox Code Playgroud)
但是,在处理大约4:15之后,reader.Read()只返回false.在我的大多数测试运行中,i等于14896,但它有时也停在11920. DataReader在相同数量的记录之后退出是可疑的,并且在不同行数之后它停止的时间似乎更奇怪.
为什么reader.Read()在肯定有更多行时返回false?没有例外被抛出 - 甚至没有第一次机会异常.
更新:我在回答Shaun的回答中提到我确信MySqlDataReader.Read()吞下异常,所以我下载了Connector/Net的源代码(bzr branch lp:connectornet/6.2 …
我希望得到所有个人套接字对象io.sockets并迭代它们中的每一个.
就像是:
for (socket in io.sockets.something()) {
// do something with each socket
}
Run Code Online (Sandbox Code Playgroud)
要么我做错了,要么我必须遗漏一些东西.思考?
public class FareActivity extends Activity {
int fareid;
String Source;
String Dest;
AutoCompleteTextView source;
AutoCompleteTextView dest;
static final String[] SOURCE = new String[] {
"Delhi", "Mumbai", "Agra", "Jaipur};
static final String[] DEST = new String[] {
"Delhi", "Mumbai", "Agra", "Jaipur};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fare);
dest = (AutoCompleteTextView) findViewById(R.id.acdest);
ArrayAdapter<String> dadapter = new ArrayAdapter<String>(this, R.layout.list_item, DEST);
dest.setAdapter(dadapter);
source = (AutoCompleteTextView) findViewById(R.id.acsource);
ArrayAdapter<String> sadapter = new ArrayAdapter<String>(this, R.layout.list_item, SOURCE); …Run Code Online (Sandbox Code Playgroud) 我的服务器由三个主要组件组成 - node.js + express + mongojs.现在我正在寻找一种插入客户端输入的服务器端验证的方法.Mongoose通过其Schema定义提供它,但是,我希望验证独立于特定的DB层.
理想情况下,我正在寻找支持声明性验证规则的东西(再次,像mongoose模式),但没有任何与mongo的耦合.
有任何想法吗?
PS
我提到Express,因为我的目的是将验证层插入Express中间件.这应该工作,不应该吗?
PPS
如果在客户端也可以使用相同的JavaScript代码,则额外奖励.
我在Windows服务(C#)中编写了一个组件,负责发送大量的电子邮件.这些电子邮件将发送到许多域的收件人 - 实际上,任何域. (是的,收件人想要电子邮件.不,我不是垃圾邮件.是的,我对CAN-SPAM感到抱怨.是的,我知道从代码中发送电子邮件很糟糕.) 许多电子邮件都是事务性的(生成的)响应用户的行为); 一些是批量的(基本上是邮件合并).
我不想依赖外部SMTP服务器.(除了其他考虑因素之外,想要检查邮箱的弹跳消息并尝试解析它们的想法让我感觉不好.)
我的设计相当简单.生成事务和批量消息都会生成并插入到DB表中.此表包含电子邮件信封和内容,以及尝试计数和重试日期.
该服务运行一些工作线程,每次抓取20行并循环遍历每个.使用Simple DNS Plus库,我获取收件人域的MX记录,然后使用System.Net.Mail.SmtpClient同步发送电子邮件.如果呼叫Send()成功,我可以将电子邮件出列.如果它暂时失败,我可以递增尝试次数并设置适当的重试次数.如果它永久失败,我可以出列并处理失败.
显然,将数千个测试电子邮件发送到数百个不同的实际域名是一个非常糟糕的主意.但是,我绝对需要对我的多线程发送代码进行压力测试.我也不太确定模拟SMTP各种故障模式的最佳方法是什么.另外,我想确保通过各种垃圾邮件控制方法(灰名单命名与网络层最相关).
我最近发现我的ISP阻止连接到我的ISP的SMTP服务器以外的任何服务器上的端口25,甚至我的小规模测试困难也加剧了.(在生产中,这个东西当然会在一个没有阻塞端口25的正确服务器上.这对我的开发机器没有帮助.)
所以,我最好奇的两件事:
SmtpClient.Send()可能失败的各种方法有哪些?列出了六个例外; SmtpException而且SmtpFailedRecipientsException似乎是最相关的.更新: Marc B的答案指出我基本上是在创建自己的SMTP服务器.他提出了我正在重新发明轮子的有效观点,所以这是我不使用"实际"(Postfix等)的理由:
电子邮件具有不同的发送优先级(尽管这与信封无关X-Priority).批量电子邮件是低优先级; 交易很高.(并且可以进一步配置任何电子邮件或电子邮件组以具有任意优先级.)我需要能够暂停发送优先级较低的电子邮件,以便可以首先发送更高优先级的电子邮件.(为了实现这一点,工作者线程只需在每次获得另一个20时从队列中获取最高优先级的项目.)
如果我已经向外部SMTP服务器提交了数千个批量项目,那么当我现在要提交的项目被发送时,我无法将这些项目保留.粗略的谷歌搜索显示Postfix并不真正支持优先级; Sendmail优先处理信封中的信息,这不符合我的需求.
我需要能够向我的用户显示一个爆炸(一组批量电子邮件)的发送过程的进度.如果我只是将我的所有电子邮件发送到外部服务器,我不知道它在实际交付方面有多远.
我对解析退回邮件犹豫不决,因为每个MTA的退回邮件都不同.Sendmail的不同于Exchange的不同[...].另外,我以什么频率检查我的反弹收件箱?如果退回邮件本身未送达怎么办?
我不是太担心爆炸中途失败了.
如果我们谈论灾难性的失败(应用程序终止未处理的异常,电源故障,等等):由于工作线程在成功传递时将每个电子邮件从数据库中取出,我可以知道谁收到了爆炸,谁没有.此外,当服务在失败后重置时,它只是从队列中的中断位置开始.
如果我们正在谈论本地故障(a SmtpException,DNS故障等):我只记录故障,增加电子邮件的尝试计数器,然后再试.(这基本上是SMTP规范所要求的.)在n次尝试之后,我可以永久地使消息失败(将其出列)并记录失败以便稍后进行检查.通过这种方式,我可以找到我的代码未处理的奇怪边缘情况 - 即使我的代码第一次不是100%完美.(说实话,它不会.)
我希望滚动自己的路线最终会让我能够比我不得不依赖外部SMTP服务器更快地收到电子邮件.如果服务器不受我的控制,我不得不担心速率限制; 即使它是,它仍然是一个瓶颈.我已经使用的多线程架构意味着我将并行连接到多个远程服务器,从而减少了传递n条消息所需的总时间.
有没有办法获得触摸板触摸的位置?我还需要能够返回这样的2D点阵列图的捕获模块,该阵列图通过请求报告触摸板点的状态(状态表示:点触摸/未触摸).无论它是用什么技术/语言编写的
我正在开发一个基于ajax的网站,我想在加载的内容中包含一个FB共享功能.链接使用哈希标记,我无法设法在使用共享功能时显示完整链接,我只获取域网址.是不允许哈希标签还是有共享此类链接的特殊方法?
我最近转换为PHPStorm并且非常喜欢它.我试图让'File Watcher'使用我的LESS代码,我希望它使用lessc命令.我安装了node.js,命令'lessc'可以在windows命令提示符下运行,但它不想在PHPStorm中工作.
这是我对文件观察器的配置:

当文件观察程序运行时,我会连续出现此错误:
执行观察者'LESS'时发生异常.Watcher被禁用.修复它:无法运行程序"C:\ Users\Jason\AppData\Roaming \npm\lessc"(在目录"F:\ Plan2Share_v1\public\css"中):CreateProcess error = 193,%1不是有效的Win32应用
一旦我再次启用观察者,它就会以某种方式禁用并再次抛出上述错误.我是node.js和PHPStorm的新手.任何关于我可能出错的方向都将非常感激.
编辑:关注@ josh3736的方向.我现在在PHPStorm的运行控制台中收到错误.
"C:\Program Files\nodejs\node.exe" C:\Users\Jason\AppData\Roaming\npm\lessc F:\Plan2Share_v1\public\css\style.less
C:\Users\Jason\AppData\Roaming\npm\lessc:2 basedir=`dirname "$0"`
^ SyntaxError: Unexpected token ILLEGAL
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
Run Code Online (Sandbox Code Playgroud) 我想编辑一个自定义的谷歌地图(因为我需要添加行走的人行道)以及大学校园的所有原始功能,并且还创建包含多层楼检测的教室的建筑物内部,以便我可以将其实施到移动应用程序中.可以这样做吗?用Javascript?我想根据他们到达校园的地方使用GPS以及这个定制的谷歌地图覆盖图,他们可以给建筑物和教室,它将使用预先建立的"查找最短路径"方法的Google Maps API.首先我需要用Android构建它,然后可能用于Iphone.
经典的“Origin ... is not allowed by Access-Control-Allow-Origin”问题。两台机器为同一个网站提供内容。当机器 A$('#main').load('link_to_resource_on_B')通过 jquery执行 a 时,机器 B 使用 mod_python 提供内容,并添加Access-Control-Allow-Origin: *标题。但由于某种原因,这仍然不起作用。我在 Chrome、Safari 和 Internet Explorer 上对此进行了测试。我通过命令行测试以检查响应标头,它似乎Access-Control-Allow-Origin: *在来自 B 的标头中成功。见下文。我可能会错过什么?
$ telnet localhost 80
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /tests/python/test/env HTTP/1.1
host: 10.0.1.10
HTTP/1.1 200 OK
Date: Mon, 27 Feb 2012 02:05:33 GMT
Server: Apache/2.2.20 (Ubuntu)
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud) javascript ×4
c# ×3
node.js ×3
android ×2
c++ ×1
cors ×1
email ×1
facebook ×1
google-maps ×1
less ×1
mod-python ×1
mysql ×1
phpstorm ×1
smtp ×1
socket.io ×1
sql ×1
testing ×1
touchpad ×1
validation ×1
windows ×1