我可以使用Laravel 4队列在Windows上处理打印作业吗?

时间:2013-05-11 08:05:19

标签: php ms-word queue laravel laravel-4

此问题是我之前就Laravel通过Word在Windows上打印文档所提出的问题的延续。

我的问题是我不想在POST请求中启动必要的打印任务,因为这不会显示任务的反馈,只会在任务完成后做出响应。

例如,如果我调用POST /pledge/submit路由,我不想在路由的同一请求中调用必要的打印任务。

现在,我看到Laravel 4有一个名为Queues的工具,(我假设)允许我后台处理这些任务,然后将它们推迟到以后的时间。

阅读完文档后,我发现它支持四种不同的驱动程序,其中一种是sync

问题:我可以使用此驱动程序在队列中创建新的打印作业,并让它们由外部应用程序(例如在Delphi中创建的应用程序)执行吗?应用程序会定期检查队列中是否有项目,然后执行它们(当然,删除它们)。

我只是想找到发布文档的最佳方式,而最终用户不必在打印正在进行时等待页面响应。此外,我不熟悉PHP中的队列,并且不熟悉它们的工作方式(就详细的流程而言)。如果有人也可以解释这一点,我会非常感激。

1 个答案:

答案 0 :(得分:2)

队列系统无法开箱即用您的Delphi程序 - 您需要进行一些修改。

相反 - 最简单的方法是在数据库中创建自己的“表”,称为“pending_print_jobs”。

当用户想要打印作业'x'时 - 您可以使用PHP将打印作业保存在'pending_print_jobs'表中,其中包含您需要的所有详细信息(例如要打印的文件,执行该操作的用户等等)

然后,您将获得外部应用程序(即您的Delphi程序)定期检查数据库中的“pending_print_jobs”表。如果它找到任何记录 - 它可以操作它们 - 并打印文件。