小编mar*_*lar的帖子

如何使用消息队列构建多步骤过程?

假设我有一个具有这些限制的多步骤异步过程:

  1. 任何工人都可以执行各个步骤
  2. 步骤必须按顺序执行

我正在考虑的方法:

  1. 插入表示整个过程的数据库行,并显示"已完成步骤"列以跟踪进度.
  2. 订阅将在整个过程完成后收到消息的队列.
  3. 完成每个步骤后,更新db行并排队该过程的下一步.
  4. 完成最后一步后,排队"进程完成"消息.
  5. 删除db行.

思考?陷阱?更聪明的方法吗?

asynchronous message-queue amqp rabbitmq

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

调试超时有哪些好方法?(C#)

我正在构建一个运行良好几个小时的站点,但随后*.asmx和*.ashx调用开始超时.

例外情况是:"超时已到期.从池中获取连接之前已经过了超时时间这可能已经发生,因为所有池连接都在使用中并且达到了最大池大小."

我正在使用SubSonic作为ORM.

我怀疑问题是基于每隔几分钟运行一次的计划任务并命中数据库.当我查看SQL Server 2000的"当前活动"时,我看到有:

  • 状态为"睡眠"的100个进程
  • 100把锁

100个进程来自应用程序".Net SqlClient Data Provider",命令是"AWAITING COMMAND".

所以我猜这就是问题所在..但是我该如何排除故障呢?这听起来像db中的死锁条件吗?只要我

c:\> iisrestart

,一切都很好(一段时间).

谢谢 - 我从来没有遇到过这样的事情,我不确定最好的办法.

迈克尔

.net c# sql-server subsonic timeout

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

如何使用 TypeORM 创建这个 ViewEntity?

假设我正在构建一个包含 4 个表的地址簿:usercontactfriendstranger

\n\n

contactuser是与 和friend表连接的链接表stranger。它的结构如下:

\n\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 id \xe2\x95\x91 user_id \xe2\x95\x91 friend_id \xe2\x95\x91 stranger_id \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 1  \xe2\x95\x91 1       \xe2\x95\x91 5         \xe2\x95\x91 NULL        \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 2  \xe2\x95\x91 1       \xe2\x95\x91 NULL      \xe2\x95\x91 65          \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 3  \xe2\x95\x91 1       \xe2\x95\x91 87        \xe2\x95\x91 NULL        \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想创建一个如下所示的视图:

\n\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 id \xe2\x95\x91 user_id \xe2\x95\x91 friend_id \xe2\x95\x91 stranger_id \xe2\x95\x91 contact_name \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 1  \xe2\x95\x91 1       \xe2\x95\x91 5         \xe2\x95\x91 NULL        \xe2\x95\x91 Barry        \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 2  \xe2\x95\x91 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql typeorm

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

当路径是动态的时,ng-click不设置$ location.path()

我正在尝试使用这样的标签:

<a ng-click="$location.path('/restaurant/{{restaurant._id}}')">{{restaurant.name}}</a>
Run Code Online (Sandbox Code Playgroud)

但是,单击标签时没有任何反应.

奇怪的是,如果我对那里的值进行硬编码,就像这样:

<a ng-click="$location.path('/restaurant/512ad624b67fe1f446709331')">{{restaurant.name}}</a>
Run Code Online (Sandbox Code Playgroud)

它按预期工作.

DOM的屏幕截图:

在此输入图像描述

为什么会这样?我怎么能解决这个问题?

angularjs

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

建立一个基本的会计应用程序

我正在构建一个简单的会计应用程序,用于个人理财.

用户可能会跟踪购买,即将到来的账单,经常性存款等.这将简单易懂.

两个问题:

1)我应该记住哪些建议?显然,我会在适当的地方使用事务,但是正确的数据类型和其他注意事项会很好.

2)您是否知道我可以用来定期从银行获得用户余额的API?即,无论是在Chase,BofA还是其他方面,都可以简化查询帐户的API?

非常感谢,

迈克尔

api accounting finance

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

如何防止javascript缓存?Querystring方法不起作用

我已经看到其他方法将版本号或MD5哈希附加到JS src查询字符串.

e.g. <script src='/script/v1/'></script>
Run Code Online (Sandbox Code Playgroud)

但是,当我推送新版本的网站时,我的JavaScript 仍会在多个浏览器(Chrome,Firefox)中缓存.

这似乎是其他人已经解决的一个主要问题,我似乎正在做正确的事情.我怎样才能让它发挥作用?

javascript caching

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