очередь fifo
Добрый день, подскажите как правильно организовать очередь fifo. Задача такая есть страница сайта через которую пользователи сайта должны отправлять смс возможно и оптом на несколько телефонов за раз. есть скрипт который может отправлять смс через телефон подключенный к компьютеру. отправка смс занимает определенное время, т.е. вариант когда сама страница вызывает этот скрипт и ждет его завершения не подходит. мысль такая сделать такое место куда бы эта страница заносила данные и писала что-то типа того - сообщения добавлены в очередь, в ближайшее время они будут доставлены... а сам скрипт проверял бы это место и если там есть инфа - отправлял бы смс. вопрос как организовать это? с помошью файлов, баз данных, или еще чего, интересует именно сам принцип как ПРАВИЛЬНО сделать, пишу на perl. Заранее благодарен.
Чтобы было fifo - то выбирать будете тот элемент, чей ID наименьший + ещё не отправлен.
да я тоже склоняюсь к базам данных это кажется более правильным, т.к. есть подозрение? что с файлами могут возникнуть проблемы - скорость чтения записи, одновременный доступ на запись и чтение опять же статистика и прочее, не будет ли вариант с базой данных заваливаться при большом количестве запросов (потенциально конечно :)) хотя думаю если разберусь с fastcgi или mod_perl то все будет нормально. но пока это не актуально черновой сайт еще не готов.
R/W в файлы на порядок быстрее, чем запросы к БД.
>> не будет ли вариант с базой данных заваливаться при большом количестве запросов
У вас будет по 100 и больше запросов к БД в секунду?? Я думаю, даже близко не будет.
Цитата: vital
отправка смс занимает определенное время, т.е. вариант когда сама страница вызывает этот скрипт и ждет его завершения не подходит. мысль такая сделать такое место куда бы эта страница заносила данные и писала что-то типа того - сообщения добавлены в очередь, в ближайшее время они будут доставлены...
а как вы будете репортовать пользователю, что смс доставлен и его мессадж не ушел в /dev/null? не проще воспользоваться, к примеру, AJAX'ом, чтобы страница не висела во время отправки скрипта? и передавать через AJAX запрос на отправку перловому бэкенду?
Цитата: UAS
У вас будет по 100 и больше запросов к БД в секунду?? Я думаю, даже близко не будет.
100 запросов к БД в секунду это даже и не нагрузка :)