我有一个使用Postgres数据库用PHP编写的Web应用程序。
下一阶段的开发是为了构建后台批处理流程,需要每天为应用程序的每个用户执行一次(或按要求进行adhoc)。该流程将查询,等待响应并处理来自第三方服务的响应,以将信息提供给Web应用程序中的用户帐户。
有没有很好的方法可以做到这一点?
更新:该进程 在凌晨3点运行。关键是可能需要为每个用户运行一些批处理。批处理的执行可以在一天中传播。我希望这是一个与应用程序分开的“后台”进程。
答案 0 :(得分:1)
您可以编写一个PHP脚本,该脚本可以运行任何需要处理的用户,并设置一个cron作业以在凌晨3点运行您的脚本。作为一个cron工作运行意味着你不必太担心第三方呼叫的速度有多慢。显然,您需要在数据库中存储任何必要的数据。
或者,如果用户在网站上执行某些操作来触发进程,则可以使用exec()
触发PHP脚本立即处理该用户,而无需用户等待。这样做的风险在于您无法控制流程触发的速度。
第三种选择是直接执行请求并让用户等待。但听起来这不适合你。
这实际上取决于您所呼叫的第三方以及原因。第三方需要多长时间来回应,他们有多可靠,他们可以执行什么样的费率限制等等......