曾为一些项目使用 Node.JS,在收到请求时,您可以向用户发送响应,同时在幕后执行其他耗时的代码。
我有一个 PHP 应用程序,它使用自定义的 API 框架返回 JSON 数据。 当用户提交收件人的电子邮件地址和邮件消息时,我有一个发送电子邮件的路由。
需要提交所需的详细信息。如果详细信息正确,用户应立即收到确认回复,然后根据他们提供的详细信息开始查看电子邮件。
是否有任何解决方法,因为要立即向用户返回响应,我应该调用出口;将停止进一步执行代码的函数,请记住,发送电子邮件大约需要 10 秒?
答案 0 :(得分:0)
您可以使用任何排队系统,如 redis、amqp 等。尽管推荐使用这种方法,但也有一些学习曲线,最好将它与已经提供适当传输的 PHP 框架结合使用。
参见 https://symfony.com/doc/current/messenger.html 作为 Symfony 示例
不过,我之前使用过的更简单的解决方案是自定义队列:
这样用户体验会好很多。
答案 1 :(得分:0)
要回答主题“如何在后台执行 PHP 代码?”中的问题,您的手被托管服务提供商束缚了。
现代托管服务提供商允许 exec() 和 cron 作业。我建议您寻找替代托管服务提供商。