PHP和计划任务
我正在尝试列出在
PHP上运行计划任务的不同方法列表.我的目的是提供一种在PHP中运行计划任务的通用方法.到目前为止,我有:
1)分析网站流量.如果您每天收到770次点击(每2分钟一次点击),并且您安排任务在上午6:00运行,并且访问者在上午5:59请求了一个页面,则运行该任务,因为下一个访问者将平均上午6:01到达.在这种情况下,运行= exec(‘/usr/bin/php -f /home/account/cron.php’). ()只要路径正确,就可以在所有平台上运行. ( – )需要一些CPU电源. ( – )需要exec(). ( – )在较小的网站或流量高峰的网站上不准确. 2)以上的改进版本.当用户请求页面并且任务要运行时,在将内容刷新到用户后,请不要使用exec(),而是使用include(). ()适用于所有平台. ()没有exec()的. ( – )需要一些CPU电源. ( – )在较小的网站或流量高峰的网站上不准确. 3)运行单独的进程后台,使其以恒定循环运行.提供一个管理界面,让您“开始”和“结束”“服务”.然后它将使用fsockopen()来调用无限运行的.php脚本.它使用sleep()来消耗资源并在时机成熟时唤醒(参见:time_sleep_until()).它可以搜索文件并读取它们以了解何时运行哪些任务.可以创建文件“run-everyday-3.00am”,使调度程序在其中运行代码. ()适用于所有平台. ()没有exec()的. ()可以非常准确(例如,如果它每分钟睡眠一次). ( – )不稳定 – 服务器崩溃完全停止调度程序. ( – )有些主机不喜欢24/7/365 =资源占用的进程? 4)直接在Linux上运行exec(‘crontab’)等. ()这不是资源匮乏. ()是准确的. ( – )exec(). ( – )不适用于所有平台. 5)要求cPanel凭证并对其进行POST以创建/管理/删除crons. ()是准确的 ()这不是资源匮乏. ( – )安全性差 ( – )需要用户详细信息=可用性降低 ( – )不适用于所有平台(需要在Windows上不起作用的cPanel). ( – )需要cPanel. 还有其他想法吗? 解决方法
你提出的几乎所有方法都很难看,尽管大多数方法都有效.
我的丑陋替代方案是在本地计算机上设置cron,该计算机具有互联网连接,可以在几分钟内运行curl命令. 它和你的所有解决方案一样丑陋,但它更可靠. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |