【发布时间】:2016-06-30 13:01:07
【问题描述】:
我有一个关于如何防止应用程序和/或线程的多个实例选择 MSSQL 表中的相同行的问题。
这是场景: 我有一个 ASP.net 站点,用户可以在其中输入他们的电子邮件。 然后该电子邮件将被插入到我的 MSSQL 数据库中的一个表中。
然后想法是有一个 WebJob(Azure WebJob) 每五秒选择一次所有新创建的行,然后向每个用户发送一封电子邮件,然后将该行标记为“已处理”..
然而.. 如果我出于某种原因决定将我的 WebJob 扩展到多个实例怎么办?... 我假设可能有一个小窗口,多个实例可能会在数据库中选择相同的行,然后处理这些行并向注册用户发送多封电子邮件? 有没有办法“锁定”另一个实例/线程当前正在处理的行?
还是我用错了方法?
兄弟, 英克斯
【问题讨论】:
-
看看service bus。我认为这比使用 SQL 数据库更好。
标签: c# asp.net sql-server entity-framework azure