不管操作成功与否, 都会记录到日志文件的
我们 要 编写 的 队列 将以“ 先到 先 服务”( first- come, first- served) 的 方式 发送 邮件, 并且 无论 发送 是否 成功, 程序 都会 把 发送 结果 记录 到 日志 里面。 本书 在 第 3 章 和 第 5 章 中 曾经 介绍 过, Redis 的 列表 结构 允许 用户 通过 RPUSH 和 LPUSH 以及 RPOP 和 LPOP, 从 列表 的 两端 推入 和 弹出 元素。 这次 的 邮件 队列 将使 用 RPUSH 命令 来 将 待 发送 的 邮件 推入 列表 的 右端, 并且 因为 工作 进程 除了 发送 邮件 之外 不需要 执行 其他 工作, 所以 它将 使用 阻塞 版本 的 弹出 命令 BLPOP 从 队列 中弹 出 待 发送 的 邮件, 而 命令 的 最大 阻塞 时限 为 30 秒( 从右 边 推入 元素 并从 左边 弹出 元素 的 做法, 符合 我们 从左 向右 进行 阅读 的 习惯)。 为了 简便 起见, 本节 展示 的 任务 队列 只会 处理 已售 出 商品 邮件, 但是 添加 针对 已过 期 商品 邮件 的 支持 也 并非 难事。
约西亚 L.卡尔森(Josiah L. Carlson). Redis实战(异步图书) (Kindle 位置 3646-3655). 人民邮电出版社. Kindle 版本.