Forum Webscript.Ru

Программирование => Perl => Тема начата: disgorge от 08 Января 2006, 18:36:53

Название: обработчики базы
Отправлено: disgorge от 08 Января 2006, 18:36:53
Здравствуйте! С  perl я знаком плохо. Подскажите, как организовать несколько обработчиков, работающих с базой одновременно. Работа их заключается в извлечении строк
таблицы, причем одна и та же строка не должна быть извлечена более одного раза. Таблица при этом не меняется. База mysql, если это важно. Спасибо.
Название: обработчики базы
Отправлено: swop от 18 Января 2006, 23:23:05
Вариант №1

Вы запускаете несколько процессов которые знают смещение в таблице с которого надо читать. На примере таблицы

table1  CREATE TABLE `table1` (                        
          `id` int(11) NOT NULL auto_increment,        
          `message` varchar(255) NOT NULL default \'\',  
          PRIMARY KEY  (`id`)                          
) ENGINE=InnoDB

1 процесс делает такой запрос

select * from `test`.`table1` limit 0, 1

второй

select * from `test`.`table1` limit 5, 1

как и где хранить счётчик ваше дело.

Вариант №2

1 Процесс читает всю таблицу (или равными кусками) и шарит массив данных между процессами.

прочитайте вот что perldoc perlipc perlthrtut