【问题标题】:ASP MVC - I need to periodically check my database, how can i do that?ASP MVC - 我需要定期检查我的数据库,我该怎么做?
【发布时间】:2012-11-15 13:49:57
【问题描述】:

我有一个用 ASP.MVC 编写的在线网站。现在,我需要定期检查一个表,如果它发生变化,我需要采取与修改其他表中的数据相关的进一步操作。我当然可以编写一个独立的应用程序来为我做这件事,但是我还有其他选择吗?我在问,因为也许有更好的东西我不知道。

【问题讨论】:

  • 密切相关的问题:stackoverflow.com/q/4329859
  • 这是唯一的方法。网站仅响应来自网络的请求。您不能保证任何页面在任何给定时间都会运行。
  • Trigger 听起来像是一个解决方案,但我不太喜欢处理 db 引擎。 :/另一方面,罗伯特的回答听起来正是我所需要的,但我不确定ThreadPool.RegisterWaitForSingleObject 方法将如何影响性能,因为我需要从一个表中获取数据并将其放入另一个表中。你可能有处理这种方法的经验吗?它将如何影响我网站的性能?
  • @ojek:你可能问这个问题太早了。实现它的工作量似乎很小,然后您可以决定它是否太慢而无法满足您的需求。

标签: asp.net-mvc database asp.net-mvc-3


【解决方案1】:

我得到了一个满足我要求的答案。有一个叫做 Quartz.net 的东西可以按我的意愿工作。 :)

【讨论】:

    【解决方案2】:

    假设您使用的是 SQL Server,一种选择是将项目添加到 ASP.NET Cache,然后在该项目上为要监视的表或行注册 SqlCacheDependency。启动和运行它需要一些配置,一些指令是here(代码示例在 VB 中)。当您将项目添加到具有SqlCacheDependency 的缓存时,您可以指定在数据更改时触发的回调方法,这是您更新相关表的方式。如果您正在运行 SQL Server,需要 Microsoft 提供的预定义解决方案,并且不介意设置过程以及其中包含的其他数据库表和配置,那么这将是一个不错的选择。

    【讨论】:

    • 这个设置如何与多个网络服务器一起工作?对于典型的缓存,这很好。您需要做的就是使多个网络服务器上的缓存失效。但是 OP 希望有一些火来更新数据。这需要一个单例。
    • 这肯定是这个实现的一个缺点,必须考虑到这一点,但这不是原始帖子中阐明的要求。这是可以在多服务器配置中使用这种方法来解决的问题,但是在那时,是的,您可能需要考虑其他选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2019-08-25
    • 1970-01-01
    相关资源
    最近更新 更多