class Program{ static voID Main(string[] args) { var host = new JobHost(); host.RunAndBlock(); } public static voID Processstuff([Queueinput("myqueue")] string msg) { var tsk = ProcessstuffAsync(msg) .ContinueWith(x => HandleAsyncError(x),TaskContinuationoptions.OnlyOnFaulted); tsk.Wait(); } public static async Task ProcessstuffAsync(string msg) { // do some async stuff and await it } // other methods ...}
但是,我想知道我是否可以让JobHost知道要调用我的异步方法?在WebJobs中尝试使用异步/等待,没有大量的文档,如果可以的话,这将是非常好的.@H_301_5@
我试图在本地运行它来测试…但WebJobs SDK不支持本地存储模拟器…@H_301_5@
更新4/7/2014:维克多的答案是正确的,但我确实想要展示在WebJob中使用异步方法(他们会工作)会看到什么.@H_301_5@
对于WebJob中的一个方法,如下所示:@H_301_5@
public async static Task ProcessMessageAsync([Queueinput("testq2")] string message){ await Task.Delay(50); Console.Writeline("Processing Message Async..."); Console.Writeline(message);}
您将在WebJobs日志中看到以下输出:@H_301_5@
running in pID: 6272Timestamp:4:36:02 PMParameters bound. Invoking user function.--------Warning: This asynchronous method will be run synchronously.Processing Message Async...a test message--------Success解决方法 现在支持异步.看到博客文章 here.
不幸的是,两个问题的简短答案是:不支持.@H_301_5@
(略)较长答案:@H_301_5@
WebJobs SDK不支持异步方法.如果查看执行日志(在仪表板上),您将看到一条警告,指出异步函数(返回任务或任务)的函数是同步执行的.@H_301_5@
我们不支持本地模拟器.开发时必须使用真正的存储帐户.@H_301_5@ 总结
以上是内存溢出为你收集整理的Azure WebJobs – 我可以使用Async方法吗?全部内容,希望文章能够帮你解决Azure WebJobs – 我可以使用Async方法吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)