【问题标题】:HOWTO update schedule of webjob in Azure如何在 Azure 中更新 webjob 的计划
【发布时间】:2017-10-24 09:21:50
【问题描述】:

我已将一些 webjobs 添加到 appjob。 Webjobs 与新版本的 webapp 一起从 VS 中延迟。

为了安排作业,我在 webjob 根文件夹中添加了一个 settings.job 文件。

如果我在 Azure 中查看 webjobs 安排正确。

但是如何从 Azure 更改该计划?现在更改该计划的唯一方法似乎是更改 settings.job 文件并从 VS 重新部署。

更新:

鉴于 KUD​​U 并不总是有效,并且更改时间表的程序并不适合非技术用户。我开始研究使用 azure scheduler。但不知道如何让它工作。

从 webapp|webjob 配置中,我获取了 webhookurl、usr、pwd。 使用此 webhookurl 和凭据(基本身份验证)创建了一个新计划

但我收到此错误:

没有为“/api/triggeredwebjobs/<webjobname>/run”注册路由

有什么建议吗?

【问题讨论】:

  • 这个问题有两个方向: 1. 如何更改 settings.job 计划。 2. “KUDU 并不总是有效”,没有详细说明它是如何无效的。 3.如何使用Azure Scheduler进行触发,这是完全不同的事情。请将您的问题定位为单个主题(如果需要,您可以打开不同的单独 SO 问题)。

标签: azure azure-webjobs azure-scheduler


【解决方案1】:

如何更改 settings.job 计划。

  • 您可以将settings.job 文件放在WebJob 目录的根目录下并对其进行修改,然后重新部署您的WebJob 项目。

  • 您可以利用kudu,导航到D:\home\site\wwwroot\app_data\jobs\triggered\<job-name>,然后修改settings.job

此外,您可以使用WebJobs API 来创建/更新触发作业的计划,它会自动为您创建/更新settings.job 文件。

PUT https://{webdeploy-username}:{password}@{your-webapp-name}.scm.azurewebsites.net/api/triggeredwebjobs/{webjob-name}/settings

Body: {"schedule": "*/30 * * * * *"}

我在 kudu 上检查了我的 WebJob 日志,修改后的日程安排需要一些时间才能生效。

我开始研究使用 azure 调度程序。但不知道如何让它工作。

没有为“/api/triggeredwebjobs//run”注册路由

对于Azure Scheduler,您可以参考David Ebbo 的博客here。根据您的错误,我认为您的 Http 方法错误,您应该使用 POST。这是我的测试,你可以参考一下:

【讨论】:

  • POST 做到了 :-) 因为不需要“发布”数据,我从没想过这可能是问题所在。
【解决方案2】:

对于那些在同一问题上挣扎的人:

事实证明,最好的解决方案是使用 Azure 的调度程序作业集合。 棘手的部分是找出如何设置它。

动作设置: - https - 复制你在 webjob 的属性页面中找到的 uri 来调用,它被称为 'webhook' - 从同一个地方复制凭据

【讨论】:

    【解决方案3】:

    您也可以通过https://yoursite.scm.azurewebsites.net 访问 Kudu(高级工具),并直接通过控制台修改 settings.job 文件。

    我建议您重新部署,以便您始终在版本控制中拥有正确的时间表。否则,您可能会发布然后意识到您又拥有旧的时间表。

    【讨论】:

    • 需要为无法部署的客户提供程序。我现在正在查看 schedulecollection,但还没有想好设置它。尤其是调用 webhook 的身份验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多