【问题标题】:How to kill a PHP process?如何杀死一个PHP进程?
【发布时间】:2014-10-03 11:44:23
【问题描述】:

是否可以标记 PHP 进程并在必要时将其终止?

为什么? 我有一个 jQuery 应用程序,当用户“保存”时,会将 POST 发送到我的 PHP 脚本。 PHP 脚本非常密集,可能需要一段时间,但处理是在幕后的服务器上完成的,对用户是透明的(当我说透明时,我的意思是用户可以在前端用 jQuery 做事,并且没有意识到 PHP 脚本仍在处理中)。因此,用户可能会在第一次 PHP 保存操作完成之前再次保存。

所以我的问题是,我怎样才能杀死最后一个 PHP 保存过程(如果它还没有完成)并重新开始保存过程?

【问题讨论】:

  • 阻止第二次保存是微不足道的,但反过来似乎很棘手。
  • 我觉得可以在php.ini中限制执行时间
  • 如果我限制执行时间,保存操作可能无法在我想要的时候完成
  • 这好像出了点问题。您不应允许此类中断,因为它可能会导致您的数据状态不一致。 Insetead 我建议暂停当前的保存过程并将所有此类过程放入一个队列中。
  • @Alma 做,我想你可能是对的,我应该排队保存数据。

标签: php kill-process


【解决方案1】:

关于对这个特定问题的帮助,我会说第一种方法是错误的。您的数据或交易将变得不一致。所以解决办法应该是先在php中使用PDO对象来完成事务。好处是,如果在交易之间的过程失败,交易可以恢复。

第二个在 jquery 中使用 $.ajaxComplete() 方法来查看任何未来的事件。让处理程序看到任务已完成并通知用户其状态。

如果你需要,我可以举个例子

【讨论】:

  • PDO 与事务有什么关系? (我什至没有提到保存过程可能涉及大量事务)此外,OP 甚至没有提到他在谈论 DBMS。这个问题的全部意义在于不同的事情。
  • 考虑发布代码示例以准确显示/描述您的意思。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 2015-03-12
  • 2018-06-09
  • 2011-05-28
  • 2013-04-13
相关资源
最近更新 更多