使用 ASP.NET C# 在任务计划程序中运行特定任务

本文关键字:任务 运行 程序 计划 NET 使用 ASP | 更新日期: 2023-09-27 17:56:10

我在 ASP.Net Web应用程序中有一个按钮。我希望此按钮在任务计划程序中调用任务。我没有找到任何确切的代码来从任务计划程序调用任务。请帮忙....!!

使用 ASP.NET C# 在任务计划程序中运行特定任务

查看此库的文档。它是Windows任务计划程序的包装器。

http://taskscheduler.codeplex.com

这是任务计划程序Windows API的包装器https://msdn.microsoft.com/en-us/library/windows/desktop/aa383614(v=vs.85).aspx

使用此包装器,您可以使用这样的代码轻松地与任务计划程序进行交互

using (TaskService ts = new TaskService())
{
  Task t = ts.GetTask(taskName);
  if (t != null)
  {
      // get status here or get runtime
      var isEnabled = t.Enabled;
      var runs = t.GetRunTimes(startDate,endDate);
  }
}

现在您应该记住,在等待 ASP.NET 请求处理周期时,您无法轮询任务的状态。您可能能做的最好的事情就是检查 Ajax 调用中的状态,直到任务完成。

同时,重新评估您的设计和任务计划程序是否适合此目的。在允许访问任务计划程序的同时保护您的网站可能是一个挑战。另一个选项是您为 Web 应用程序开发和运行请求任务的 Windows 服务。这对我来说一直很有效。客户端可以 ASP.NET AJAX 或 JavaScript 通过 Web API 获取任务的状态

下面是一个 MSDN 链接:https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler(v=vs.110).aspx

对你的案例使用 TaskScheduler.TryExecuteTask 方法。

https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.tryexecutetask(v=vs.110).aspx