Ситуация такая: делаю "скриншотер" урлов на основе PhantomJS, а список урлов пока храню в текстовом файле. Скрипт, который делает скриншоты (и читает урлы из файла) - на JS. Из консоли запускаю - все хорошо работает, но когда делаю запуск через CRON - не читает файл.
Как это лучше реализовать? Или вообще другую архитектуру? Код ниже:
var fs = require('fs');
var content = fs.read('urls.txt');
var address = content.split('\r\n');
var addlen = address.length;
var counter = 0;
address.forEach(function (entry) {
// имя файлу присваиваем по юникс-времени
var now = new Date();
var name = now.getTime() + '.png';
var page = require('webpage').create();
page.settings = {
javascriptEnabled: true,
loadImages: true,
resourceTimeout: 20000,
userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
};
page.viewportSize = { width: 1024, height: 800 };
try {
page.open(entry, function (status) {
counter++;
if (status !== 'success') {
console.log(counter + ' Unable ' + entry);
if ( counter == addlen ) { phantom.exit(); };
}
else {
page.render(counter + " " + name);
console.log(counter +' Saccess ' + entry);
if ( counter == addlen ) { phantom.exit(); };
}
page.close();
});
}
catch (e) {
console.log('Ошибка работы PhantomJS.');
console.log('Сообщение ошибки:');
console.log(e);
phantom.exit();
}
});
if ( counter == addlen ) { phantom.exit(); };