首先,基于 Laravel 5.2 实现一个任务队列,用于存储待发送短信的相关信息,及 seeder/worker 的处理逻辑
短信模板 ID
模板参数
短信签名
目标手机号码
创建存储任务的数据表
第一步,首先创建表 (表结构是 Laravel 默认的)
php artisan queue:table
php artisan queue:failed-table
php artisan migrate
第二个表 failed_jobs 是存储失败任务的
CREATE TABLE `jobs` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
# 这是否意味着可以有多个 queue, 以名字区分?是的,可以在程序中指定
`queue` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
# payload 是啥,难道是将逻辑代码写入 payload? worker 怎么识别 payload?
# 逻辑代码在 app/Jobs/XXX.php 的 handle 中,payload 存错的应该是 dispatch 的参数
`payload` longtext COLLATE utf8_unicode_ci NOT NULL,
`attempts` tinyint(3) unsigned NOT NULL,
# reserve 预定跟 available 有什么区别?
`reserved_at` int(10) unsigned DEFAULT NULL,
`available_at` int(10) unsigned NOT NULL,
`created_at` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `jobs_queue_reserved_at_index` (`queue`,`reserved_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `failed_jobs` (
`id` int(10) un