我可以在azure函数中实现async“fire and forget”HTTP触发器

时间:2016-06-30 13:00:09

标签: azure-functions

我有一个具有长时间运行操作的azure函数应用程序。我想通过HTTP(为简单起见)通过一些输入和无输出来触发它。我不希望在作业运行的整个过程中保持HTTP连接打开。

我可以选择构建一个函数应用程序,其中运行时接受一些数据,然后在调用run.csx文件之前立即将控制权返回给调用者?

1 个答案:

答案 0 :(得分:9)

我建议你的http函数接受的设计+验证工作请求,并将消息排入另一个函数正在侦听的工作队列。所以你要从http触发器模板开始,并添加一个队列输出绑定。

这样您的请求会立即返回,并且您可以在队列触发函数的上下文中完成长时间运行的工作。一个好处是,您将免费获得队列触发器的重试行为。例如。如果您的长时间运行任务中途失败,则会在一段时间后重新处理该消息(队列消息仅在成功处理后从队列中删除)。

分离还为将来如何安排工作提供了更多选择。例如。未来可以通过另一个函数的队列输出启动工作,不需要http请求。