【问题标题】:Stopping Website from within a WebJob从 WebJob 中停止网站
【发布时间】:2014-07-08 18:56:49
【问题描述】:

有没有办法阻止 Azure 网站从 WebJob 中运行?

我有一个使用 Ghost 在 Node 上运行的 Azure 网站。我正在尝试安排 Ghost 数据库文件的备份,理想情况下应该在站点未运行时完成。我可以通过使用 Kudu PowerShell 控制台终止 Node.exe 进程来暂时停止该站点。

如果我尝试从 WebJob 执行相同的操作,进程不会终止 - 大概是因为 WebJob 在不同的上下文中运行并且看不到 node.exe 进程。

有没有办法从 WebJob 中停止/启动站点?

【问题讨论】:

    标签: azure azure-webjobs


    【解决方案1】:

    Azure 网站通过 HTTP API 进行控制。在您的 WebJob 中,您可以通过发出 HTTP 请求来停止您的网站。请参阅请求的here for details

    但是,WebJob 与您的网站在相同的上下文中运行。因此,如果站点停止,您的 WebJob 也将停止。而且您应该有其他方法让您的网站重新上线,因为 WebJob 不会为您服务...

    【讨论】:

    • 我见过这样的声明:“WebJob 与您的网站在相同的上下文中运行。因此,如果站点停止,您的 WebJob 也将停止。”网上很多次,但从未见过这种行为。我的网站上有连续的网络作业,停止网站绝对不会停止网络作业。 AlwaysOn 的设置不会改变行为。
    • @Howiecamp。这也是我看到的行为。如果我停止网站,那么我实际上希望停止工作,但不幸的是情况并非如此。
    【解决方案2】:

    实际上,当我最初试图终止 node.exe 进程时,我的 WebJob 似乎做错了。

    虽然@trailmax 是正确的,终止站点(即 w3wp 进程)也会停止 WebJobs(实际上是 Kudu 站点),但您可以从 Web 作业中终止 node.exe。一旦与站点建立另一个连接,它将立即重新启动,因此很遗憾,这不是最佳解决方案 - 除非启动某种异步进程以不断检查并终止 node.exe,直到 WebJob 完成其工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多