我刚刚接受了一个类似的问题(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;
我需要的是不重复地为每个工人报废一个站点。所以,如果我有 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 的循环队列排序器。
我怎样才能做到这一点?