从我可以看到,Gearman不支持计划的作业或延迟的作业。我当时想也许可以at先将计划的作业排入队列,然后在该at时间段到期后将其添加到Gearman队列中。
at
at任务是持久的,因为它们以文件形式写入服务器的假脱机目录中的目录。因此,唯一的瓶颈可能是将任务添加到Gearman队列的简单脚本,因为at它无法在服务器之间分布。将其传递给Gearman来处理实际的工作意味着我可以进行适当的工作记录等。
这是解决此问题的最佳方法,您还有其他选择吗?
我选择Gearman而不是其他队列解决方案的原因是它具有PHP扩展名。
我正在编写的代码用于维护需要发送的电子邮件队列。因此,我可以指定例如要在星期五的9.50发送电子邮件到example@example.org。
我决定at按照我在问题中最初提出的路线去做。为此,我为at二进制文件编写了一个PHP包装程序,并在Ubuntu上对其进行了测试。如果您有兴趣,可以在github上找到它:http : //github.com/treffynnon/PHP-at-Job-Queue- Wrapper