需求
在传统的应用中由于消息队列缺乏,而且为了兼容必要的部署和配置需求,往往想在不太多修改代码的情况下拥有队列功能。常用的消息队列有传统的JMS,amqp以及互联网的mq系列的中间件等。然而在传统的基于数据库的应用中,往往只想拥有简单的队列功能,并不存在着大量并发和分布式的问题,因此构建一个基于数据库表存储结构的队列已经基本能满足业务需求。该库的实现为jdjjob库
为了满足当前系统中的队列需求:1. 包含入队顺序按照时间或者是序列号之类的; 2. 包含重入队列,拥有记录上次失败原因和失败次数; 3. 支持多机分布式的队列生产和消费; 4. 支持多个队列的绑定和监听。为此设计了对应的表结构如下:
CREATE TABLE `jobs` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT <