【发布时间】:2018-12-22 01:10:53
【问题描述】:
我们有一个每月两次的 ERP,必须对过去两周的所有订单进行结算。这样我们的客户选择所有这些订单,按下“生成账单”按钮,一系列顺序 ajax http 请求完成,每张发票一次,同时弹出消息通知他们过程。
首先,所有的发票都是按顺序在数据库中生成的,就像前面提到的那样,一旦这个过程完成,就轮到生成 PDF 文件了。这也是通过顺序 ajax 请求实现的。
这很好,只要用户保持该窗口不变。如果他们离开或关闭该页面,整个过程(如果要生成许多发票可能需要几分钟)就会停止。
如果过程中途停止,可能会导致许多发票没有生成 PDF 文件。这很关键,因为当他们发送所有要打印的发票时,如果必须动态生成 PDF 内容并将其发送到打印机,则此操作比从现有文件中读取内容要多得多。
我可以更改流程,以便在生成一张发票后,下一个操作是生成其文件,依此类推。但我想知道是否有某种方法可以通过 system()、exec() 等将进程发送到后台,并在进程发生时在同一个 Web 应用程序中得到通知完成,无论用户决定离开计费页面执行其他任务。
【问题讨论】:
-
生成 PDF 的队列(例如 beanstalkd)将是一个好的开始,并且可以在某个地方存储“用户是否收到有关生成的 PDF 的通知”
-
有趣。我将对队列和beantalkd进行研究。第二部分,你说的是数据库吗?
标签: php ajax http pdf-generation background-process