现在我有一个python脚本读取csv文件,进行一些计算,然后将csv写回计算结果,最后将文件通过电子邮件发送给用户。这是在每个人本地机器上完成的。此外,我们还有一个azure Web应用程序,可以执行一些不同的计算和用户交互。我们想要添加到Web应用程序的是一个小管理页面,它允许用户上传csv文件,在一些文本框中输入一些变量,然后点击"运行"。点击运行将导致文件和输入传递到将运行python脚本的Azure Web作业。
如何让网络应用程序提交上传的文件以及Web作业的输入?从本质上讲,我认为我需要弄清楚如何使Web应用程序与Web作业进行通信。
答案 0 :(得分:0)
WebJob不是最适合的,因为你期待回复/回复。虽然你可以连续运行一个暴露REST界面的WebJob,但它确实不是一个很好的解决方案。请考虑一下:
以下是一些使用blob存储的示例,如果您以前从未这样做过:
https://azure.microsoft.com/en-us/documentation/articles/storage-python-how-to-use-blob-storage/
答案 1 :(得分:0)
根据我的经验,我认为有两种解决方案可以满足需求。
在线模式。如果csv文件大小不大且计算过程很简单,您可以直接从上传的csv文件中用少量参数计算数据,然后将结果写入响应。
离线模式。预处理上传的csv文件并使用ARFF
等参数转换为其他格式文件,然后将其推送到Azure Storage Queue。连续运行的webjob从存储队列中获取文件并使用参数part计算数据部分,然后将结果写入Azure存储Blob并记录下载的blob路径。