2

我正在制作一个网站,管理员可以在该网站上上传一些 PDF 文件。我有一些代码可以将上传的 PDF 文件(作为参数给出)转换为纯文本,并且使用该纯文本,我可以在用于在网站上生成其他页面的数据库中进行一些插入。

我可以将上传文件的管理员重定向到另一个页面,然后在那个页面上我可以放置代码来解析文件并创建数据库条目,但这是一个缓慢的操作,管理员必须留在那个页面上直到动作完成。

也许我没有最好的解决方案,但我认为应该这样做:在上传页面中,上传文件后,服​​务器应该运行一个文件(例如:parsePDFFile.php)来处理解析PDF文件并更新数据库。这样,管理员可以继续浏览该站点,而不会意识到幕后有一些文件处理。

问题是我不知道从哪里开始或在 Google 上搜索什么,所以我不知道做这样的事情是否可能或一个好的解决方案。

4

4 回答 4

2

我相信在 PHP 中执行此操作的适当方法是使用以下函数之一执行单独的进程exec, system, 'pcntl_exec ,popen` 等。

于 2012-09-17T06:32:59.703 回答
1

当你上传文件时。那个时候也在数据库中输入pdf文件名并在网页中不转换状态。一旦 Cronjob 运行,该时间代码将更改 PDF 状态已完成。Cronjob 将每隔几个小时运行一次,因此站点将继续更新。所以服务器不会有太多负载

于 2012-09-17T06:49:00.313 回答
0

您可以像每分钟一样设置一个 cronjob,检查是否有新的 pdf,然后运行您的脚本。

于 2012-09-17T06:26:26.133 回答
0

如果您有足够的权限访问服务器来设置 cron,我会假设您有足够的权限来安装 PHP 扩展...

如果是这种情况,那么我认为您在这里想要的是网站/网络服务器进程之外的多个线程。一个线程可能应该作为守护进程运行(实际上并不需要是一个线程,这可以是 PHP 的主进程)并定期扫描新的 pdf,或者如果您知道有关条件和互斥锁的任何内容,则可以按需扫描 - 您可以发送当用户以这种方式上传时,向主线程(或进程,它们也可以使用互斥锁/条件)发出信号。然后这应该分派新线程来处理每个 pdf 并继续扫描或等待通知的工作......

https://github.com/krakjoe/pthreads

可能的 :)

于 2012-09-19T19:29:48.887 回答