Здравствуйте. Есть скрипт phantomjs открывающий и делающий скриншот страницы. Его нужно запустить из nodejs. Нужно запускать по заданию каждую минуту, но тестирую на 10 секундах. Моя конструкция срабатывает только один раз, остальные нет.
Скрипт phantomjs
var webPage = require('webpage');
var page = webPage.create();
page.viewportSize = {
width: 1920,
height: 5000
};
page.open("http://localhost:3000/", function start(status) {
console.log("status", status);
page.render('test1.jpeg', {
format: 'jpeg',
quality: '100'
});
phantom.exit();
});
Сам cron собственно:
var Cron = require('cron').CronJob;
var i = 0;
var job = new Cron({
cronTime: "*/10 * * * * *",
onTick: function() {
console.log("iteration is ", i);
var render = require('../tests/initphantom');
i++;
}
});
job.start();
И методом дедукции я выяснил, что проблема именно здесь в скрипте, который вызывает shell команду для скрипта phantom. Как я понял, я создаю childprocess, который не заканчивается и блочит последующее выполнение крона. При этом в документации node имеется метод subprocess.kill, который не работает на линуксе. Как можно решить эту проблему?
Собственно вызов phantom
var path = require('path');
var childProcess = require('child_process');
var phantomjs = require('phantomjs');
var binPath = phantomjs.path;
var childArgs = [
path.join(__dirname, '/phantomTest.js')
]
module.exports.rendr = childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) {
if (err) {
console.log("err in childProcess", err)
}
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Скажите, пожалуйста, как можно получить элемент ячейки таблицы (HTMLTableDataCellElement), если я знаю индексы строки и столбца, на пересечении которых...
Насколько я понимаю, trigger("reset") должен очищать поля формы, после отправкиПочему этого не происходит ?
Получаю от сервера данные в таком виде /Date(-62135575200000)/, что это за формат времени? Как из него получить читаемую дату используя javascript?