【问题标题】:asp.net core execute with urlasp.net core 用 url 执行
【发布时间】:2020-04-01 00:30:03
【问题描述】:

我创建了一个 ASP.NET Core 3.1 WebAPI 项目,其中我还实现了对外部 api 服务的一些 API 调用,然后将其导入并保存到我的本地数据库。

假设我有一个路由“/imports/mymethod”,它将触发导入运行。

现在我想将此作为 Windows 计划任务,例如每 10 分钟运行一次。

When I execute the "exe" file "myproject.exe" it says:

Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000"

是否可以编译我的项目并使用“myproject.exe -path http://localhost:5000/imports/mymethod”之类的参数运行编译后的exe文件然后它将使用该方法运行路由?

或者还有其他方法可以实现吗?

最好的问候

【问题讨论】:

    标签: asp.net-core asp.net-core-webapi


    【解决方案1】:

    如果你在本地机器上运行这个 api 只是为了学习,下面是最简单的选择。 1) 提取导入路由背后的导入逻辑,并使用控制台应用程序调用此逻辑,并使用计划任务每​​ 10 分钟运行一次此函数。重要提示:如果仅在本地计算机上运行并且您不打算将其部署到生产环境中,请执行此操作

    如果您想在生产环境中使用它,那么您几乎没有选择

    1) 您可以编写一个与您的 web api 一起部署的 webjob,每 10 分钟触发一次,然后将数据导入您的数据库。请参阅Run background tasks with WebJobs in Azure App Service。您可以在webjob内部编写逻辑来导入数据并插入到数据库中

    2) 使用时间触发的 azure 函数调用要从其中将数据导入数据库的 api。这种方法虽然声音增加了另一个您必须管理的项目

    3) 创建一个计时器触发的逻辑应用,该应用执行与 2 中提到的 azure 函数相同的逻辑

    4) 在您的 web api 中实际将您的路由公开为“/imports/mymethod”,然后在您的本地计算机上创建一个调用 web api 的 powershell 脚本或批处理文件并安排要运行的 powershell 脚本或批处理文件每 10 分钟使用 Windows 调度程序

    我个人的偏好是使用 webjobs,因为 webjobs 是专门为运行后台任务而创建的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 2015-06-19
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      相关资源
      最近更新 更多