从第一个PHP脚本中调用第二个PHP脚本

时间:2016-02-25 01:47:16

标签: php http-headers shopify

如果购买了某些产品,我有一个脚本从Shopify接收webhook并将订阅者添加到数据库。该脚本有效,但处理时间过长。 Shopify webhook仅在重复之前监听响应5秒钟。我的脚本平均需要5.5-7秒。结果是我的脚本多次触发,因为Shopify没有及时获得http 200。

我尝试过使用ob_start();使用ob_flush();强制标题();在脚本的开头发送,但它不起作用。因此,我想将此过程拆分为两个脚本:第一个接收webhook,检查所需产品,如果找到产品,则设置会话变量并调用另一个php文件。然后第一个脚本将结束,以便发送http响应。同时,第二个脚本将访问会话变量来处理订阅者数据库功能,而不用担心需要多长时间。

如何从第一个脚本中激活第二个php文件?或者,如果更简单,我如何强制http 200立即发送?

1 个答案:

答案 0 :(得分:1)

我认为你应该考虑使用队列。

  1. Shopify将webhook发送到您的网站
  2. 您的webhook.php脚本收到通知,并将参数保存在队列中,然后发回200代码。应该在几毫秒内完成
  3. 后台任务消耗队列并执行繁重的工作(在数据库中添加订户)
  4. 你可以:

    • 使用亚马逊的SQS或Rackspace的队列等SaaS队列系统
    • 在您的服务器上安装排队系统,如RabbitMQ
    • 开发自己的排队系统,尽可能简单或复杂。甚至可以是包含要处理的信息的简单文件或数据库表