我可以为一个PHP函数定义时间限制吗?

3
我正在为一个PHP电子商务系统制作模块。该系统数据库有2000个产品。我需要在一天内更新所有产品(某些值)。我不想一次性更新所有产品。
我尝试在访问者打开某个页面时(模块已挂钩初始化-标题),每隔一段时间更新100个产品。在这里,我想给出时间限制。如果这100个产品在20秒内没有更新,则中断并将最后更新的产品ID写入数据库。
如何做到这一点?这个函数如何知道20秒后中断?

1
开始时和循环中的 time() - splash58
为什么你要在用户交互中这样做,而不是在例如cron中进行?此外,更新仅2000个产品,我觉得不应该花费20秒,更不用说仅仅100个了。 - Jonnix
我可以在循环中使用time()函数,这对服务器没有问题吗? - devugur
@JonStirling 这是一个电子商务系统的模块。我试图提供一个cronjob信息,但这里的所有用户都不知道如何创建cronjob。 - devugur
@user5510975 调用 time() 函数 1000 次并查看执行时间。我认为它会很小。 - splash58
20秒内更新100条记录听起来像是你的查询做了很多额外的工作,需要进行检查。 - Nicholas Alexander
1个回答

2

这正是我需要的,但它是Symfony组件。我如何在没有Symfony的情况下使用它?(谢谢) - devugur
composer require symfony/process - luchaninov
如果您无法使用Composer,可以从https://github.com/symfony/process下载它。 - luchaninov
使用PHP函数proc_open直接执行 - http://blog.dubbelboer.com/2012/08/24/execute-with-timeout.html - luchaninov
execute-with-timeout.html 对我很有帮助。谢谢。 - devugur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接