c# - 在asp.net c#中后台运行应用程序
问题描述
我想使用 asp.net c# 制作一个后台运行的桌面应用程序。
这个想法是检查本地数据库表并从该表中获取所有数据,以便将所有这些数据插入实时数据库表中。
如果该场景有更好的解决方案,请向我推荐一个。
解决方案
似乎您想要解决的是将数据从多个本地数据库移动到一个中央数据库,以便您可以通过 asp.net 网站使用它。我不会讨论应用程序部分,因为一旦您可以连接到包含您需要的所有数据的数据库,这是一个很容易解决的问题。
这里有几件事需要考虑:
- 重复(一次性迁移与连续同步)
- 方向(您需要从本地同步到中心的单向还是双向)
数据契约(本地数据库是否与中央数据库具有相同或不同的架构)
如果模式不同,数据契约是您最大的问题,因为您需要为中央数据库设计至少一个目标模式,该模式可以从本地数据库中获取数据。即使模式相同,您也需要设计一种在中央数据库中对数据进行分区的方式,您可能需要在表中引入 sourceDatabaseId 列,这样您就不会有冲突的主键(如果你的主键是指导)
其他可以解决任一建筑物:
- Windows 服务 - 输入:周期性(例如每小时)、源数据库和目标数据库连接字符串。您将有一个主循环等待直到运行时间到来(基于周期性)并从源数据库中获取数据并将它们保存到目标数据库中(最好是分批)
- 控制台应用程序 - 输入:源数据库和目标数据库连接字符串。您只需批量移动数据。您可以在服务器上配置计划任务,该任务将执行控制台应用程序的计划运行,以解决周期性运行部分。
您将为每个本地数据库设置一个这样的 Windows 服务或计划的控制台应用程序。
如果您有复杂的数据库,您可以查看 Microsoft Sync Framework 等工具来执行此数据同步。
推荐阅读
- ios - Swift - Firebase - 订单收集
- java - 反应原生 webview 与 swift/java webview
- python - Discord.py 在部署到 Heroku 时说“通过了不正确的令牌”
- javascript - 为什么我的嵌套网格视图只显示一瞬间?
- .net - PowerShell 解析 .NET 选项卡完成方法和属性
- python - 使用反斜杠解析非常大的 JSON 文件(JSON 编码)
- ruby-on-rails - 循环中有没有办法知道你是否在最后一次迭代中?
- c++ - 有人可以解释一下吗?这是关于数组和数组内部 if 语句的一些处理
- hex - 这个十六进制校验和是如何计算的?
- python - RabbitMQ Python Pika - 多条消息的连接处理