You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

触发型WebJob切换为持续运行模式的操作步骤正确性咨询

WebJob 触发型转持续运行模式操作校验及补充配置

现有步骤正确性确认

你列的两个基础操作是必要且正确的:

  • csproj 文件修改:确认将 <WebJobType> 节点的取值从 Triggered 改为 Continuous 即可,注意检查 CI/CD 流水线的打包发布步骤,避免存在硬编码的 WebJob 类型参数覆盖该配置
  • settings.job 文件调整:删除原触发型配置的 schedule 等规则,保留空 JSON {} 即可,不会残留旧触发逻辑

需补充的操作与配置项

代码逻辑调整

不要使用阻塞式的 Thread.Sleep(xxx),推荐改用异步非阻塞的 await Task.Delay(xxx),同时必须在循环外层加全局异常捕获,避免单次业务报错直接终止整个 WebJob 进程,参考写法:

// 注入取消令牌,响应Azure进程终止信号
using var cancellationTokenSource = new CancellationTokenSource();
AppDomain.CurrentDomain.ProcessExit += (s, e) => cancellationTokenSource.Cancel();

while (!cancellationTokenSource.Token.IsCancellationRequested)
{
    try
    {
        // 你的业务执行逻辑
    }
    catch (Exception ex)
    {
        // 自行实现日志记录,不要将异常抛出到循环外层
        Console.WriteLine($"执行异常:{ex.Message}");
    }
    // 按业务需要调整等待间隔
    await Task.Delay(TimeSpan.FromSeconds(60), cancellationTokenSource.Token);
}

如果多实例部署时要求仅单实例运行 WebJob,可在 settings.job 中添加配置 "is_singleton": true,避免多实例重复执行业务。

Azure 服务配置

必须开启对应 App Service 的 始终开启(Always On) 配置,注意:免费/共享定价层不支持该功能,需要升级到基本层及以上规格,否则应用进程闲置超过20分钟会被系统回收,持续运行的 WebJob 也会同步终止。

部署后校验

CI/CD 部署完成后,进入 Azure 门户对应 App Service 的 WebJob 管理页,确认目标 WebJob 的类型为「持续」、状态为「正在运行」,避免部署配置残留导致类型未切换成功。


内容的提问来源于stack exchange,提问作者petercli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:36:04