将外部脚本输出传递给Mojolicious应用

时间:2017-11-20 23:56:05

标签: jquery perl named-pipes stdio mojolicious

我有一套生成电子表格文件的cron Perl脚本。我想将这些更改为下载生成的文件的按需Web表单。有些脚本可能需要一分多钟才能运行。

我创建了一个生成表单的Mojolicious应用程序。使用jQuery,POST运行脚本并最终提示用户下载生成的电子表格文件。这很好。

我的问题是我希望用户看到从脚本生成的标准输出。我目前只是在脚本运行时使用愚蠢的微调器。这样做的最佳设计是什么?我以为我会使用命名管道和websocket,使用第二个线程来接收输出并在浏览器中显示它。在这种情况下,我似乎遇到了缓冲问题。我得到了输出,但只在脚本完成后才输出。我非常清楚线路缓冲,但我似乎无法让Perl做到这一点。

有比这更好的方法吗?我是否能够使用控制脚本的相同Mojolicious流程将数据推送到浏览器?

我可以提供我的代码,但由于我不确定它是否是正确的设计,我真的不想引导你走错方向。我不是在寻找代码或精细的细节,而只是寻求一般的设计帮助。

编辑:我一直在撞墙,试图让我的剧本进行线缓冲。无论外部资源说什么,它(Perl)都会控制输出。如果我想强制缓冲,我将不得不在每个脚本的顶部添加它:

select STDOUT;
$|=1;

0 个答案:

没有答案