问题列表 - 第6046页

限制电子邮件发送过程的速度

对不起,标题有点糟糕,我无法正确地说出来.

编辑:我应该注意这是一个控制台c#app

我已经制作了一个像这样工作的系统原型(这是粗略的伪代码):

var collection = grabfromdb();

foreach (item in collection) {
    SendAnEmail();
}
Run Code Online (Sandbox Code Playgroud)

发送电子邮件:

SmtpClient mailClient = new SmtpClient;
mailClient.SendCompleted += new SendCompletedEventHandler(SendComplete);
mailClient.SendAsync('the mail message');
Run Code Online (Sandbox Code Playgroud)

SendComplete:

if (anyErrors) {
    errorHandling()
}
else {
    HitDBAndMarkAsSendOK();    
}
Run Code Online (Sandbox Code Playgroud)

显然这种设置并不理想.如果初始集合有10,000个记录,那么它将以相当短的顺序刷新10,000个smtpclient实例,因为它可以逐步执行 - 并且可能在此过程中呈现.

我理想的最终游戏是同时发送10个并发电子邮件.

想到一个hacky解决方案:添加一个计数器,在调用SendAnEmail()时递增,并在发送SendComplete时递减.在初始循环中调用SendAnEmail()之前,检查计数器,如果它太高,则在一段时间内休眠,然后再次检查.

我不确定这是一个如此伟大的想法,并认为SO蜂巢的思想将有办法正确地做到这一点.

我对线程知之甚少,不确定它是否适合在这里使用.例如,在后台线程中发送电子邮件,首先检查子线程的数量,以确保没有太多使用.或者如果内置了某种类型的"线程限制".


更新

根据Steven A. Lowe的建议,我现在有:

  • 一个字典,包含我的电子邮件和一个唯一的密钥(这是电子邮件队列
  • 填充字典的FillQue方法
  • ProcessQue方法,它是后台线程.它检查que和SendAsycs中的任何电子邮件.
  • SendCompleted委托,用于从que中删除电子邮件.并再次调用FillQue.

我对这个设置有一些问题.我想我已经错过了背景线程的船,我是否应该为词典中的每个项目产生其中一个?如果电子邮件que清空线程结束,我怎么能让线程因为缺少更好的单词而"闲逛".


最后更新

我在后台线程中放了一个'while(true){}'.如果que为空,则等待几秒钟并再次尝试.如果阙重复为空,我'打破'一会儿,程序结束......工作正常.我有点担心'虽然(真)'的业务但是......

c# multithreading smtpclient

6
推荐指数
1
解决办法
2652
查看次数

Django和Restful API

我一直在努力选择使用Django创建RESTful API的方法.我尝试过的方法似乎都不是"银色"子弹.来自http://fi.am的 WAPI 可能是我想要完成的最接近的,但是我不确定在真正的RESTful API中是否可以接受资源标识符的参数在查询字符串中而不是在"干净"的URL格式.有关修改WAPI RestBinding.PATTERN以"清理"URL的任何建议吗?我探索过的另一个选择是Django-Rest-Interface.然而,这个框架似乎违反了我需要的最重要的部分之一,那就是包含引用其他资源的完整资源URL(参见http://jacobian.org/writing/rest-worst-practices/网站使用不当).最后的选择是使用django-multiresponse,基本上可以做到很长的路要走.

请给我你最好的建议,特别是那些已经处理过这个决定的人.

api django rest

58
推荐指数
4
解决办法
4万
查看次数

厌倦了ASP.NET,我应该学习以下哪些内容以及为什么?

以下哪项技术易于学习,有趣于开发网站?如果你只能选择一个,那就是它

  • Clojure的/的Compojure +戒指/胡须+戒指
  • Groovy中/ Grails的
  • 的Python/Django的
  • 的Ruby/Rails
  • Turbogear
  • 卡布奇诺咖啡或Sproutcore
  • 使用Javascript/jQuery的

ruby python asp.net-mvc groovy clojure

8
推荐指数
8
解决办法
1537
查看次数

在RootController上调整UITableView的大小

是否可以在基于导航的应用程序的RootController上调整UITableView的大小?在IB中打开RootViewController.xib时,没有视图.只是UITableView.单击检查器,然后单击小黄色标尺,框架高度显示为灰色.我正在以编程方式向RootViewController添加一个工具栏:

[toolbar setFrame:rectArea];
Run Code Online (Sandbox Code Playgroud)

这工作正常,但tableview中的底部单元格部分隐藏,因为tableview不知道工具栏.

iphone cocoa-touch uitableview uitoolbar

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

是否可以查看汇编的源代码?如果是,那么如何?

我正在使用程序集EventCalender.ddl是EventCalender.dll.我从现有应用程序复制了此程序集.它为日历提供定制功能.我想看看那个DLL的代码,并希望改变它的一些功能.怎么可能......?提前致谢.

asp.net dll assemblies

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

iPhone核心数据示例产生异常

不再是NDA.

iPhone Core Data示例中有一个小问题,但现在已经更正了.此外,示例代码始终是正确的,他们只是在教程中省略了一些细节.

(请参阅iPhone Dev论坛以获得解释)

我构建了一个应用程序两次并收到两次相同的错误(但在2个不同的地方):

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'+ entityForName:无法找到实体名称的'NSManagedObjectModel'事件''

我读了苹果文档:

它说明了模型缺失的问题,或者上下文为零,或者持久性存储无效.

然而,由于这是我的第一个核心数据项目,我在调试方面有点弱.我可以根据需要发布代码.

任何帮助深表感谢.

iphone cocoa-touch core-data

4
推荐指数
1
解决办法
1万
查看次数

流畅的NHibernate - HasMany().WithKeyColumnName

我刚刚从Google代码中获得了最新版本的Fluent,看起来自从我上次使用它以来,一些映射已经发生了变化.

以前,当我加入的id在第二个表中有不同的名称时,我可以使用以下内容映射关系

HasMany(x => x.Roles).WithTableName("tbl_Roles").WithKeyColumn("RoleId");
Run Code Online (Sandbox Code Playgroud)

如何在最新版本的Fluent中完成?

谢谢

fluent-nhibernate

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

如何在php中检测一首歌的BPM

如何以编程方式确定歌曲的速度/ BPM?常用的算法是什么,必须考虑哪些因素?

algorithm audio signal-processing beat-detection

77
推荐指数
6
解决办法
9万
查看次数

JAXB给我:java.lang.IllegalArgumentException:参数不能为null

我这样做是使用JAXB将一些XML解组为Java对象:

我的代码看起来有点像这样:

InputStream testMsg = getClass().getResourceAsStream("TestDocumentEvent.xml");
Unmarshaller unmarshaller = JAXBContext.newInstance(DocumentEvent.class).createUnmarshaller();
DocumentEvent unmarshalled = (DocumentEvent) unmarshaller.unmarshal(testMsg);
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,我得到一个异常:

java.lang.IllegalArgumentException: is parameter must not be null
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

java jaxb

19
推荐指数
1
解决办法
3万
查看次数

facebook状态栏

有人知道如何在新的facebook中找到状态栏的好教程吗?底部的那个.看起来很酷

我以为它是用ajax或jquery编写的.但不确定.

php ajax jquery facebook

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