当前位置: 首页 > 知识库问答 >
问题:

如何每5分钟运行一次php文件

宋飞文
2023-03-14

如何每5分钟左右运行一个PHP文件?我尝试使用cron,但它似乎不起作用。假设我想让我的网站运行一个播放声音的php文件。如何使php文件每5分钟运行一次,使声音每5分钟播放一次。我知道JavaScript可以做到这一点,因此函数可以按设定的间隔运行,但我希望文件也这样做。

这样做的原因是我正在创建一个网站,我希望用户得到实时通知。为了做到这一点,我需要运行php文件,以便它可以检测用户通知的更改,然后在用户收到新通知时发出噪音。如果需要更多信息,我可以提供。

编辑:

下面是我用来尝试在PHP脚本上运行cron-localhost-run-cron作业的内容,在Windows中的localhost上

我的script.bat文件"C:\Xammp\php\php.exe"-f"C:\Xammp\htdocs\Social alMedia\Admin\User\Notification.php"

还有我的shellscript.vbs档案

设置WinScriptHost=CreateObject("WScript.Shell")WinScriptHost.RunChr(34)

我已经遵循了他们在那篇文章中所说的内容,但我在网络控制台日志中没有看到任何变化。它应该显示每 x 分钟运行一次的文件,但它不会

编辑:虽然我的问题还没有完全回答,但这个网站是我找到答案的地方。https://we b-push-book . gaunt face . com/chapter-01/02-how-push-works/谢谢!

编辑 - 这是我问题的答案 - https://developer.hyvor.com/php/ajax-long-polling


共有2个答案

齐才艺
2023-03-14

要在Windows中创建调度程序,您需要:在服务器或系统上创建.bat文件;在.bat文件中键入以下命令:

“F:\xampp\php\php.exe” -f “F:/xampp/htdocs/sitefolder/test.php”;

在Windows中的任务调度程序中设置调度程序时间和文件。

祝你好运

邢硕
2023-03-14

在 linux 中运行 cron 作业或在 Windows 中运行任务调度程序将无法完成所需的操作。这不是技术的工作方式。客户端提出问题,服务器回复,故事结束。为了说明这一点,您的cron工作如何知道谁应该得到更新?它没有,也不可能。

在典型的网站场景中,我能想到的唯一方法是让您的客户端通过ajax不断轮询服务器更新。如果你的观众不多,这可能会奏效。但是它不会很好地扩展。

还有另一种技术可能适合您:Web推送通知。

但是,我怀疑与利用这个概念相关的学习曲线相当大。快速搜索显示一些您需要调查的页面:

https://serviceworke.rs/push-get-payload_demo.html

https://github.com/web-push-libs/web-push-php

除了名字之外,我真的一无所知,所以我不知道这是否会达到你的要求,但这是除了让你的客户定期轮询服务器之外唯一的事情。

 类似资料:
  • 问题内容: 我创建了一个电子邮件队列数据库表。我将把我的PHP应用程序需要发送的所有电子邮件插入此表。 然后,另一个PHP脚本将查找所有未发送的电子邮件并将其发送。 我使用cronjobs运行此脚本。不幸的是,cronjobs每分钟最多只能运行一次。因此,在最坏的情况下,用户必须等待一分钟,直到真正发送他的电子邮件为止。 我目前的解决方法是,使用附加的sleep参数调用脚本并复制cronjobs。

  • 我希望每5分钟运行一个脚本,比如说从13:02开始,这样我可以每5分钟运行另一个脚本,但从13:04开始,第二个脚本在第一个作业开始两分钟后运行。我怎样才能做到这一点?

  • 问题内容: 我有要求在5分钟内运行一会儿循环。我寻找了计时器api,但找不到这样做。任何人都可以为此提供代码摘要。 谢谢 问题答案: 最简单的方法是只检查每次迭代已花费了多少时间。例: 这将运行循环,直到超过5分钟为止。 笔记: 当前循环迭代将始终完成,因此在实践中它将始终运行5分钟以上。 对于此应用程序而言,它比之更合适,因为如果调整了计算机的系统时钟,后者将发生变化,从而使计算工作中断。 感谢

  • 问题内容: 我正在cronjob中运行PHP脚本,我想每5分钟发送一封电子邮件 我当前的(crontab)cronjob: cronmail.php如下: 但是我没有在30分钟内收到此配置的电子邮件。 问题答案: 在文件中,这些字段是: 每小时的分钟。 一天中的小时。 一个月中的某天。 一年中的月份。 一周中的天。 所以: 表示每小时10分钟执行一次。 如果您希望每五分钟使用一次,请使用以下任一方

  • 问题内容: 我正在使用Python和PyGTK。我对运行某个功能感兴趣,该功能每隔几分钟从串行端口获取数据并保存一次。 当前,我正在时间库中使用sleep()函数。为了能够进行处理,我将系统设置如下: 这种设置使我从串口读取数据的间隔为5分钟。我的问题是我希望能够让我的readserial()函数每隔5分钟暂停一次,并且能够一直执行操作,而不是使用time.sleep()函数。 关于如何解决这个问

  • 问题内容: 我希望添加一个条目,以每隔30分钟,每小时的零零几点和接近小时的30分钟执行一次脚本。我有以下内容,但它似乎无法在0上运行。 我需要使用什么字符串? cron在OSX上运行。 问题答案: 做: