所有,
关于未来的项目,我有一个非常普遍的问题.我需要构建一个接受各种输入的引擎软件(简单的数字和复杂的不同数据的多个数组).该软件将处理输入并提供计算输出.优先考虑的是,可以从不同的应用程序调用此"服务"来执行这些计算.计算是昂贵的,所以理想情况下这应该在服务器上运行.选择框架是.NET.有人可以给我一些关于什么是最好的技术/架构的想法吗?
谢谢,MK
给定一个充当队列的表,如何最好地配置表/查询,以便多个客户端同时从队列中处理?
例如,下表指示了工作人员必须处理的命令.完成工作后,它会将处理后的值设置为true.
| ID | COMMAND | PROCESSED |
| 1 | ... | true |
| 2 | ... | false |
| 3 | ... | false |
Run Code Online (Sandbox Code Playgroud)
客户端可能会获得一个命令来执行此操作:
select top 1 COMMAND
from EXAMPLE_TABLE
with (UPDLOCK, ROWLOCK)
where PROCESSED=false;
Run Code Online (Sandbox Code Playgroud)
但是,如果有多个worker,则每个都尝试获取ID = 2的行.只有第一个会得到悲观的锁定,其余的将等待.然后其中一个将获得第3行等.
什么查询/配置允许每个工作者客户端分别获得不同的行并同时处理它们?
编辑:
几个答案提出了使用表本身记录进程中状态的变化.我认为在单一交易中这是不可能的.(也就是说,如果在txn提交之前没有其他工作人员会看到它,那么更新状态的重点是什么?)或许建议是:
# start transaction
update to 'processing'
# end transaction
# start transaction
process the command
update to 'processed'
# end transaction
Run Code Online (Sandbox Code Playgroud)
这是人们通常接近这个问题的方式吗?在我看来,如果可能的话,DB会更好地处理问题.
我尝试在Flex中为我用Flash编写的项目做preloder.我在这个站点链接文本的帮助下做了这个. 我的Flash项目在名为Game的主类中有下一个源代码
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
private function keyDown(event:KeyboardEvent) {
if (event.keyCode == 81 && q_was_push == false) q_was_push = true;
if (event.keyCode == 81) press_q = true;
if (event.keyCode == 65) press_a = true;
if (event.keyCode == 83) press_s = true;
if (event.keyCode == 32) press_space = true;
} ...
Run Code Online (Sandbox Code Playgroud)
当我接受Flex生成的新swf文件时,我有错误TypeError:错误#1009:无法访问空对象引用的属性或方法.在游戏()
如果我发表评论
//stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
//stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
Run Code Online (Sandbox Code Playgroud)
Flex应用程序工作但Flash应用程序不响应按钮按下
请问我如何将预加载器和工作按钮组合在一起
我已经完成了这个问题所说的:仅适用于iPhone或iPad的横向模式
但是view.frame.size.height仍然是1024,这是设备处于纵向时的高度,当界面旋转宽度和高度开关值时肯定是?
(假设您想将屏幕拆分为3个视图,对于横向和纵向的应用程序,并且您执行了view.frame.size.width/3,因为宽度值不会是不正确的.实际上是宽度)
我敢肯定iPhone上的宽度和高度开关,为什么不在iPad上呢?
这让我再次感到震惊,我也没有使用笔尖,有人可以给出一个可接受的答案吗?(即不涉及手动切换宽度和高度的那个)
一旦奖金被授予答案,我将开始另一个奖金250并将其奖励给同一个人.
我正在尝试使用以下代码在HTML文档中设置font-family"Ravie":
<h2><font font-family="ravie">Articles</font></h2>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.为什么不?
我正在考虑将应用程序注册到URL协议,我想知道,方案中允许哪些字符?
一些例子:
h323:[<user>@]<host>[:<port>][;<parameters>].)
z39.50r://<host>[:<port>]/<database>?<docid>[;esn=<elementset>][;rs=<recordsyntax>]:)
paparazzi:http:[//<host>[:[<port>][<transport>]]/那么,我可以使用哪些角色?
我们可以......
@:TwitterUser#:HashTag$:CapitalStock?:ID-10T......等等,或者方案中的字符受标准限制?
standards-compliance url-scheme custom-protocol illegal-characters
当没有值时,我曾经收到空字符串:
[HttpPost]
public ActionResult Add(string text)
{
// text is "" when there's no value provided by user
}
Run Code Online (Sandbox Code Playgroud)
但现在我正在传递一个模型
[HttpPost]
public ActionResult Add(SomeModel Model)
{
// model.Text is null when there's no value provided by user
}
Run Code Online (Sandbox Code Playgroud)
所以我必须使用?? ""运算符.
为什么会这样?
我可以获得被捕获的异常的描述吗?
catch(...)
Run Code Online (Sandbox Code Playgroud)
块?像std :: exception的.what()之类的东西.
我正在实现双向A*搜索(双向,因为搜索同时从源和目标执行,当这两个搜索相遇时,我将拥有我的最短路径 - 至少有一些额外的逻辑抛出).
有没有人有任何采用单向A*和双向化(!)的经验 - 我可以期待什么样的性能提升?我估计它至少会将搜索时间减半或者减少 - 但是我可以看到更大的收益吗?我正在使用该算法来确定道路网络上的最短路线 - 如果这是相关的(我已经阅读了关于MS的"Reach"算法,但是想要采取婴儿步骤而不是直接进入).
使用VC9(2008)和VC10(2010)使用后续步骤编译我自己的php扩展后:
http://blog.slickedit.com/2007/09/creating-a-php-5-extension-with-visual-c-2005/
初始化php时我得到下一个错误:
PHP Warning: PHP Startup: FirstPHPExt Module: Unable to initialize module
Module compiled with build ID=API20090626,TS
PHP compiled with build ID=API20090626,TS,VC9
These options need to match
in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
为什么不说我用VC9编译模块?
更多信息:
操作系统:Windows7 x64 PHP:5.3.3,TS,VC9
.net ×1
algorithm ×1
apache-flex ×1
asp.net-mvc ×1
c++ ×1
concurrency ×1
css ×1
database ×1
exception ×1
flash ×1
html ×1
ipad ×1
iphone ×1
null ×1
objective-c ×1
orientation ×1
pecl ×1
php ×1
preloader ×1
razor ×1
sql ×1
sql-server ×1
string ×1
try-catch ×1
url-scheme ×1
viewmodel ×1