Как лучше реализовать бесконечную очередь заданий?
Суть такова - мне необходимо проверять определенные страницы на различных сайтах. Непрерывно и по очереди. Когда очередь доходит до конца, то снова начинается с первого задания. Должна быть возможность добавлять новые задания, менять задания местами и удалять их. Соответственно вопрос, как это лучше реализовать? Я знаю PHP и ActionScript (более менее близок к Java), но насколько я понимаю, они для таких целей подходят плохо. Сами задачи достаточно простые, я думаю, что не будет большой проблемы реализовать их на любом языке, соответственно нужно выбрать наиболее подходящий. Работать должно на Debian. Посоветуйте, пожалуйста, какие-то конкретные связки, которые посчитаете наиболее подходящими для такой задачи.
можете использовать Node.JS и проверять не только поcледовательно, но и параллельно, то-есть асинхронно :) Если знаете PHP, то могу предположить, что и c Javascript знакомы :) https://github.com/request/request - вот этим можете делать запрос к странице https://github.com/cheeriojs/cheerio - вот этим её парсить
А есть какой-то удобный способ (из коробки) заставить его работать непрерывно? Потому что это одна из причин, которые удерживают меня от использования PHP.
@Bone: nodejs это сервер по большей части, и он работает непрерывно. Хотя конечно небольшие утилиты и скрипт на нем тоже можно писать, хотя смысла немного. Nodejs можно без крона сделать в таком случае. По таймауту сам будет проверять тчо надо сделать. Вопрос в том достаточно ли вы умете кодить на JS чтобы написать решение.
Александр Аксентьев: Node.JS - это среда в которой можно организовать сервер. Если делать по уму, то конечно надо делать Defferd на Q и строить асинхронную очередь.
Это мне приходило в голову, но у меня создалось впечатление, что решение, как минимум не самое изящное. Например, одно задание может выполняться пол часа, а для PHP, это вроде как-то не очень. А кроме того, что будет, если крон сработает пока задание ещё выполняется? Я получу несколько заданий, которые будут выполняться параллельно?
Для консольного пхп абсолютно все равно сколько скрипт выполняется. Да, будут работать вместе, главное сделать чтобы оно не мешало друг другу, либо проверять на запущенность крона, и не давать выполнять ничего пока не готово задание предыдущее. Ну смотря что значит изящность, если хочется линукс вэй решение, то надо делать на каком-нибудь bash/питон или софтом, а не через php. Но это уже зависит от того кто что умеет.
Запускаете +1 процесс php в бесконечном цикле с инклудом. Далее в любой момент времени редактируйте файл-инклуд. В него включаете мультипоточный curl. (см. документацию) и т.д.