自动执行使用 Entity Framework 处理数据的 C# 代码?
Automate the execution of a C# code that uses Entity Framework to treat data?
我有使用 Entity Framework 处理数据的代码(从多个表中检索数据,然后在保存到 SQL 数据库之前对其执行操作)。在我创建的 MVC Web 应用程序中单击按钮时,代码应该 运行。但是现在客户希望每天在设定的时间自动运行处理数据(就像一个SSIS包)。我该怎么做?
您可以使用某些 tool/lib 为您完成此操作。我可以推荐 Hangfire,它工作正常(还有一些其他的,我没试过)。
their homepage 上的示例非常明确:
RecurringJob.AddOrUpdate(
() => Console.WriteLine("Recurring!"),
Cron.Daily);
上面的代码需要在您的应用程序启动后执行一次,您就可以开始了。只需通过调用您的方法来替换 lambda。
根据您的意愿调整时间参数,甚至更好:使其可配置,因为我们知道客户喜欢改变主意。
Hangfire 需要创建自己的数据库,对于这种事情通常它会保持很小。您还可以监控作业 运行 是否正常,并检查 hangfire 服务器是否有一些有用的统计信息。
But now the client wants the data treatment to run automatically every day at a set time (like an SSIS package). How do I go about this?
除了按照@Pac0 的建议将作业调度程序添加到您的 MVC 应用程序之外,这里还有几个其他选项:
将代码保留在 MVC 项目中并创建一个 API 端点,您可以按某种计划调用该端点。给客户一个调用 API 的 PowerShell 脚本,让他们从那里获取它。
或
将代码重构为 .DLL 或 copy/paste 将其重构为控制台应用程序,该应用程序可以 运行 使用 Windows 调度程序、SQL 代理或其他一些外部调度程序。
我有使用 Entity Framework 处理数据的代码(从多个表中检索数据,然后在保存到 SQL 数据库之前对其执行操作)。在我创建的 MVC Web 应用程序中单击按钮时,代码应该 运行。但是现在客户希望每天在设定的时间自动运行处理数据(就像一个SSIS包)。我该怎么做?
您可以使用某些 tool/lib 为您完成此操作。我可以推荐 Hangfire,它工作正常(还有一些其他的,我没试过)。
their homepage 上的示例非常明确:
RecurringJob.AddOrUpdate(
() => Console.WriteLine("Recurring!"),
Cron.Daily);
上面的代码需要在您的应用程序启动后执行一次,您就可以开始了。只需通过调用您的方法来替换 lambda。
根据您的意愿调整时间参数,甚至更好:使其可配置,因为我们知道客户喜欢改变主意。
Hangfire 需要创建自己的数据库,对于这种事情通常它会保持很小。您还可以监控作业 运行 是否正常,并检查 hangfire 服务器是否有一些有用的统计信息。
But now the client wants the data treatment to run automatically every day at a set time (like an SSIS package). How do I go about this?
除了按照@Pac0 的建议将作业调度程序添加到您的 MVC 应用程序之外,这里还有几个其他选项:
将代码保留在 MVC 项目中并创建一个 API 端点,您可以按某种计划调用该端点。给客户一个调用 API 的 PowerShell 脚本,让他们从那里获取它。
或
将代码重构为 .DLL 或 copy/paste 将其重构为控制台应用程序,该应用程序可以 运行 使用 Windows 调度程序、SQL 代理或其他一些外部调度程序。