定期触发php文件 - 没有cronjobs?

时间:2013-04-18 10:50:30

标签: php cron

好的,我有一个Web服务器和一个使用php的站点。我的问题是如何触发php文件定期运行(例如每5分钟一次)?

不幸的是,我的网络托管服务提供商似乎并不支持cronjobs,但对于没有cron访问权限的人来说肯定有一些替代方案吗?

3 个答案:

答案 0 :(得分:2)

鉴于您的要求,没有cronjob,你不能做到这一点。如今,如果您无法访问cron工具,只需切换主机即可。

另一种选择是,您的用户在访问您的网站时实际上会触发您的操作,这意味着,如果您确定您的网站每分钟都会被点击,那么使用数据库就可以跟踪您的“cron作业” ,所以当用户访问网站时,你检查cron是否在最近5分钟内运行,如果是,你什么都不做,否则,你运行cron并在运行到数据库时保存时间戳。每次用户点击您的网站时都会发生这种情况。

然而,这是穷人cron,如果你的行动需要花费一些时间,你不应该使用它,因为你的用户将不得不等待动作完成所以如果需要时间,你的用户将只是离开网站

编辑:如果它是你说的专用服务器,你应该有权访问shell,然后你就可以设置cron。

答案 1 :(得分:1)

根据您可能要强制执行这5分钟的频率,以及您的网站是否有定期流量(每分钟至少一次请求),您可以考虑:

  • 对每个请求在上次运行作业时检查数据库
  • 如果超过5分钟,请运行作业并更新数据库

运行此脚本越多,您的5分钟就越准确。要增加运行此脚本的时间,请执行以下操作:

  • 查看每个请求中是否包含某个文件,例如config.php。
  • 或许你有一些路由,例如所有请求都通过index.php

答案 2 :(得分:1)

您可以使用PHP中的守护程序脚本执行此操作。

您可以创建守护程序并运行它。在那个商店的时间和每次看时间差异。如果time diff达到5分钟,那么你可以调用其他脚本并重置时序变量 - 反之亦然。