Windows计划任务是否可以连接到休止端点?

pub*_*tic 10 c# asp.net-mvc scheduled-tasks asp.net-web-api

我有一个用ASP.NET Web API编写的休息服务.

我想要一个计划任务连接到端点,如:

www.example.com/jobs/job1
Run Code Online (Sandbox Code Playgroud)

我希望能够设置每隔12小时说一次的间隔时间.

是否可以使用计划任务执行此操作?

我想避免创建一个Windows服务只是为了ping一个休息端点.

Sea*_*rey 18

您可以使用PowerShell轻松完成此操作System.Net.WebClient.

MyScriptName.ps1使用以下内容创建一个简单文件:

$web = New-Object System.Net.WebClient
$str = $web.DownloadString("http://www.example.com/jobs/job1")
$str # not strictly necessary but if you run this in PowerShell you will get the response body of your endpoint
Run Code Online (Sandbox Code Playgroud)

然后创建新的计划任务并添加新操作Start a program并使用以下设置:

Program/script: powershell
Add arguments: .\MyScriptName.ps1
Start in: C:\The\Directory\You\Saved\Your\Script\In
Run Code Online (Sandbox Code Playgroud)

  • 您对脚本所做的任何更改都将在下次运行任务时被选中. (4认同)

小智 9

从 PowerShell 3.0 开始,您可以使用Invoke-RestMethod cmdlet。

Invoke-RestMethod -Uri "www.example.com/jobs/job1"
Run Code Online (Sandbox Code Playgroud)

这里的优点是,如果它是 XML 或 JSON,它会为您将其反序列化为一个对象。对于 RSS 或 ATOM,它将返回 Item 或 Entry XML 节点。对于文本,它将显示文本。

您可以在此处阅读更多信息:https : //msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.utility/invoke-restmethod

使用以下详细信息创建计划任务:

触发条件:每天,在您选择的时间,重复 12 小时,持续 1 天。

行动:

启动程序:powershell

参数:-NoProfile -NonInteractive -File ".\YourScriptName.ps1"

开始于:C:\your_scripts

鉴于您已经创建了一个对象,您可以以您选择的任何方式格式化这些数据,但这超出了本问题的范围。