【问题标题】:Continuous Running Web Service持续运行的 Web 服务
【发布时间】:2016-02-16 15:48:23
【问题描述】:

我在一个普通的 ole ASP.Net/C# 网站上写了一个 Web Scraper。它工作得很好,完全符合我的需要,但有一个小问题。

我希望它每天运行两次。所有代码都已到位,但我无法找到让它每天运行两次(上午 10 点和晚上 10 点)的解决方案。

Web 服务是一种解决方案吗?您可以将它们设置为在预定时间运行吗?

有什么想法吗?

【问题讨论】:

标签: c# asp.net web-services web-scraping


【解决方案1】:

由于您的“应用程序”是 Web 应用程序而不是 Windows 可执行文件,您仍然可以使用 Windows 任务计划程序按计划打开您的网页。

将Action指定为“启动程序”并将程序/脚本指定为IE:“C:\Program Files\Internet Explorer\iexplore.exe”

输入您网页的 URL 作为参数,然后单击确定。

【讨论】:

    【解决方案2】:

    是的,当然可以。 为此,我在 Asp.Net 网站中使用了 Nuget 包(Quartz.Net SchedulerFluentScheduler)。 两者都有很多选项可用于根据日期/时间/月份等进行调度。 唯一的问题是您需要确保 AppPool 不会定期回收,这是默认设置。

    【讨论】:

      【解决方案3】:

      在基于 linux 的系统上,您通常为此使用 cronjob。在基于 Windows 的系统上,您可以使用 scheduled task

      这是有关如何使用create a scheduled task 的文档。

      从命令行:

      schtasks /Create [/S <system> [/U <username> [/P [<password>]]]]
      [/RU <username> [/RP <password>]] /SC <schedule> [/MO <modifier>] [/D <day>]
      [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>]
      [/RI <interval>] [ {/ET <endtime> | /DU <duration>} [/K] [/XML <xmlfile>] [/V1]]
      [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]
      

      更多参数详情请见documentation

      因此,在您的示例中,您需要使用schtasks /Create /SC DAILY /TN "Your TaskName" /TR "Path and Executable to be run" /ST 10:00 指定第一个任务,使用schtasks /Create /SC DAILY /TN "Your TaskName" /TR "Path and Executable to be run" /ST 22:00 指定第二个任务。

      【讨论】:

        【解决方案4】:

        如果您使用的是 Windows,请使用 Windows 任务计划程序来安排一天两次运行您的应用程序。

        【讨论】:

          猜你喜欢
          • 2022-01-16
          • 2013-06-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-27
          • 1970-01-01
          • 2013-04-02
          相关资源
          最近更新 更多