如果您对API没有控制权,那么您的做法几乎是正确的。这就是cron工作的目的。
需要避免的是可能会重复执行相同操作的API调用。为什么不改为使用一个元字段automation_operation_status
存储…状态?喜欢pending
, running
, complete
, error
.
然后,在cron作业中,您只需查询那些挂起的。如果进程真的那么长,您甚至可以将其限制为每次运行一到两个作业。
只需使用cron作业频率,避免PHP超时。
最后,理想的解决方案是API本身提供一个快速队列,在那里可以存储作业以供以后处理。除此之外,还有一个可以查询处理状态的服务。或者是在作业完成时发布回WordPress安装的服务(如果需要该信息)。
所有这些您也只能通过cron jobs调用。
这样,您可以将对面向前端的服务器的压力降到最低。