模拟Webjob Shutdown以进行调试

时间:2017-03-20 22:32:46

标签: azure azure-webjobs

方案: 我已使用CancellationToken连接Web作业,并需要模拟关闭以查看是否正在成功处理取消。我已经尝试过Ctrl + C组合,但是取消没有触发。为了调试目的,模拟此关闭的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

由于这是调试代码,所以有点破解。我的问题是,CancellationToken是通过框架调用传递的,并且不允许访问CancellationTokenSource。

private async Task InitializeEventProcessing(CancellationToken ctx)
    {

#if DEBUG
        CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
        ctx = cts.Token;
#endif
     .
     .
     .
    }

答案 1 :(得分:0)

不是很喜欢另一个答案,所以这就是我所做的...

内置WebJobsShutdownWatcher会查找环境变量WEBJOBS_SHUTDOWN_FILE并监视更改。

如果将调试设置配置为为该环境变量提供文件名,则只需创建该文件(内容无关紧要),并且该文件将遵循与部署相同的关闭路径。 / p>

当然,您必须随后将其删除,或者添加一个构建步骤以在调试时删除它,或者至少在主机上执行与正常关机相同的代码。