0

这个问题是我之前提出的关于在 Laravel 的 Windows 上通过 Word 打印文档的问题的延续。

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

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

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

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

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

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

4

1 回答 1

2

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

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

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

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

于 2013-05-11T12:17:29.410 回答