0

我有一个使用 Postgres 数据库用 PHP 编写的 Web 应用程序。

下一阶段的开发是为应用程序的每个用户构建需要每天执行一次(或根据要求临时执行)的后台批处理。该过程将查询、等待响应并处理来自第三方服务的响应,以将信息馈送到 Web 应用程序中的用户帐户。

有没有好的方法来做到这一点?

  • 如何在每天凌晨 3 点为每个用户触发批次?
  • 鉴于响应可能会有延迟,这是使用类似node.js的好方案吗?
  • 是否最好让批处理的输出直接使用适当的数据更新 Web 应用程序的数据库?或者,是否有其他方法来处理输出?

更新:该过程不必凌晨 3 点运行。关键是可能需要为每个用户运行一些批处理过程。批处理的执行可能会在一天中传播。我希望这是一个独立于应用程序的“后台”进程。

4

1 回答 1

1

您可以编写一个 PHP 脚本来运行需要处理的任何用户,并设置一个 cron 作业以在凌晨 3 点运行您的脚本。作为 cron 作业运行意味着您不必太担心第三方调用的速度有多慢。显然,您需要在数据库中存储任何必要的数据。

或者,如果该过程是由用户在网站上执行某些操作触发的,您可以使用exec()触发 PHP 脚本来立即处理该用户,而无需用户等待。这样做的风险是您无法控制触发过程的速度。

第三种选择是只执行请求并让用户等待。但听起来这不是你的选择。

这真的取决于你打电话给哪个第三方以及为什么。第三方需要多长时间才能做出响应,他们的可靠性如何,他们可能会执行什么样的速率限制,等等......

于 2013-08-15T11:02:49.430 回答