0
在我的项目中,我正在使用2个异步方法。第一种方法打开一个Applescript,它打开一个After Effects项目并加载一个jsx文件(在After Effects项目中调整项目)。第二种方法呈现调整后的After Effects项目并将其呈现给.mp4文件。NodeJS http请求处理程序
第一种方法的问题是,它可以很好地打开After Effects,但它只能打开After Effects的一个实例,因为After Effects一次只允许打开1个After Effects项目。
如果有多个HTTP请求代码,After Effects会引发错误。因为它必须同时打开多个After Effects项目,这是不允许的。
我正在寻找一种方法来对此方法的HTTP请求进行排队,以便After Effects可以打开一次,并在几秒钟后执行第二个请求,并且After Effects将再次打开并再次打开...有没有在NodeJS中这样做的方法?因为我的代码不会这样做,并且我无法在net/stackoverflow上找到解决方案。
exports.renderProject = function (req, res) {
async.series([
function (callback) {
callback();
},
function (callback) {
var template = req.body[0].template; //project to render (.aep file)
//OSX editproject
var editProject = executablepathOSX + " " + template + " " + template + ".jsx" + " " + guid /*retValVacancyList[0].animation.template*/
var sys = require('sys');
var exec = require('child_process').exec;
var child;
// executes 'edit project'
child = exec(editProject, function (error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
callback();
});
},
function (callback) {
var renderProject = shellscript + "renderMp4.sh " + guid + ".aep " + guid + ".mp4"//guid + ".avi" //animation.template .avi name(guid)
var sys = require('sys');
var exec = require('child_process').exec;
var child;
// executes 'render project'
child = exec(renderProject, function (error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
callback();
});
}
我的推杆的aequeue到JS路线的 '全球' 的一部分。现在它效果很好!谢谢你的帮助! – user3374131 2014-11-03 10:52:05