同様の質問(PHP + MySQL Queue)を受け入れましたが、それは私の問題に対する正しい質問ではなく、私の質問に対する正しい答えであることに気付きました:)
ワーカーによってスクレイピングされるサイトの MySQL (MyISAM タイプ) テーブルがあります。
CREATE TABLE `site` (
`id` int(11) NOT NULL auto_increment,
`url` text,
`last_pop` int(13) default NULL,
`md5` varchar(32) default NULL,
`disabled` tinyint(1) default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `md5` (`md5`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
私が必要としているのは、ワーカーごとに 1 つのサイトを繰り返さずに廃棄することです。したがって、3 つのサイトと 2 つのワーカーがある場合、システムは次のように動作する必要があります。
ID URL LAST_POP
t4 1 site1 t1 <- worker1 scrap site1
t4 2 site2 t2 <- worker2 scrap site2
t5 3 site3 t3 <- worker1 scrap site3
t6 1 site2 t4 <- worker2 scrap site2
t6 2 site1 t4 <- worker1 scrap site1
t7 3 site3 t5 <- worker2 scrap site3
....
これは、last_pop ASC による循環キュー オーダラーのようなものです。
どうやってやるの?