2013-05-11 50 views
0

这个问题是我之前询问过有关通过Laravel的Windows上的Word打印文档的问题的延续。我可以使用Laravel 4 Queues在Windows上处理打印作业吗?

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

例如,如果我调用POST /pledge/submit路由,我不想在该路由的相同请求内调用打印所需的任务。

现在,我看到Laravel 4有一个名为Queues的设施,我认为这个设施可以让我后台处理这些任务,并将它们推迟到以后的时间。

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

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

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

回答

2

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

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

当用户想要打印作业'x'时,您可以让PHP将“打印作业”保存在“pending_print_jobs”表中,并提供您所需的所有详细信息(例如要打印的文件,执行此操作的用户等等) )。

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

+0

我一开始就想到了这一点。说实话,我认为这是目前最可行的选择。 – 2013-05-11 17:04:53

相关问题