本 README 和 master 分支上的其他文档均指的是 Que 2.x。对于旧版本,请参阅各分支上的文档:1.x 或 0.x。
- 并发性 - 当尝试锁定作业时,工作程序不会相互阻塞,这通常会发生在使用"SELECT FOR UPDATE"式锁定时。这使得在有大量工作程序的情况下,吞吐量非常高。
此外,将作业存储在 Postgres 中,与其它数据一起,而不是存储在 Redis 或专用队列中,还具有以下一般优势:
- 事务控制 - 将工作与其他对数据库的更改一起排队,它将与其他内容一起提交或回滚。如果您使用 ActiveRecord 或 Sequel,Que 可以利用它们的连接,因此设置简单,工作将受到您已使用的事务保护。 - 原子备份 - 可以同时备份工作和数据,并将其恢复为快照。如果工作与数据有关(通常是如此),则在恢复过程中不会出现工作遗漏的风险。 - 更少的依赖项 - 如果您已经在使用 Postgres(您可能应该使用),那么单独的队列又是另一个可能出现问题的移动部件。 - 安全性 - Postgres 支持 SSL 连接,这意味着您可以使用安全的连接来执行工作。