gpt4 book ai didi

javascript - 舞者2 (Perl) : launching an external Program in the background

转载 作者:行者123 更新时间:2023-11-28 05:43:04 24 4
gpt4 key购买 nike

我使用 Dancer2 制作了一个 Web 应用程序。我需要根据 ajax 请求调用外部程序。问题是请求会卡住,直到程序完成。我尝试了一些方法,例如在系统调用和 fork 中使用 & ,但没有成功。

这是简化的代码:

Perl:

package Test::App;
use Dancer2;

our $VERSION = '0.1';

get '/' => sub {
template 'index';
};
get '/startscript' => sub{
my $pid = fork();
$SIG{CHLD} = 'IGNORE';
if($pid == 0) {
`sleep 10`;
exit 0;
}
};
get '/gettest' => sub{
return "test"
};
true;

JavaScript:

$(document).ready(function() {
jQuery.get('/startscript', getSomething);
});

function getSomething(data){
jQuery.get('/gettest', getSomething);
console.log(data);
}

最佳答案

老问题,但以下内容对我来说效果很好 - 使用 & 让 shell 在后台运行命令。这会立即将控制权返回给路由处理程序,并且该命令会在后台运行。

Perl:

post '/run-slow-script-in-background' => sub {
my $slow_command = q{/full/path/to/slow/script --arg1 what --arg2 ever &};
system($slow_command);
};

关于javascript - 舞者2 (Perl) : launching an external Program in the background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com