gpt4 book ai didi

php - 如何在用户离开后保持 PHP 脚本运行?

转载 作者:搜寻专家 更新时间:2023-10-30 20:31:10 25 4
gpt4 key购买 nike

我有一个 PHP 脚本,用于在用户访问页面时检查 SQLite 数据库的最后一次更新时间(30 分钟时间跨度)。如果超过 30 分钟,则脚本会将新信息拉入数据库。但是,我担心用户可能会在数据库更新时离开,因此忽略了更新某些条目。即使在用户离开后,我该怎么做才能使脚本继续执行?

我在这里查看了一些类似的问题,发现有人建议使用 ignore_user_abort(),但是当数据无法发送回客户端时似乎存在问题。任何其他建议将不胜感激。谢谢!

最佳答案

异步PHP调用

一种选择是执行异步 PHP 调用(请求)。参见 Asynchronous PHP calls?了解更多信息。但请记住,如果经常这样做,您会产生大量后台进程,这可能会杀死您的服务器。

P.S:另外,当您使用共享主机时,这样做通常不会受到太多赞赏

消息队列

执行此操作的更好方法是使用消息队列 (MQ)。你可以使用 RedisBeanstalkd仅举两个流行的 MQ。感谢http://redistogo.com/,您有一个免费的 redis 实例提供给您.从客户端/生产者(访问您页面的用户),您可以使用 RPUSH 将消息添加到队列中.从消费者 (SQLite) 这是一个在后台无休止地运行 (CLI) 的 PHP 进程,您可以使用 BLPOP 检索放在队列中的消息。 .使用消息队列时,生成进程是昂贵的并且可以避免。

关于php - 如何在用户离开后保持 PHP 脚本运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6727928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com