首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和计划任务

PHP和计划任务
EN

Stack Overflow用户
提问于 2009-11-28 12:35:58
回答 5查看 2.6K关注 0票数 3

我正在尝试列出在PHP上运行计划任务的不同方法。我的目的是提供一种在PHP中运行调度任务的通用方法。到目前为止,我已经:

1) 分析站点流量。如果您每天收到770次点击(即每2分钟一次),并且您计划在早上6:00运行一个任务,并且访问者在5:59时请求一个页面,那么运行该任务,因为下一个访问者将在平均早上6:01到达。在本例中,Run = exec('/usr/bin/php -f /home/account/cron.php')

(+)只要路径正确,就能在所有平台上工作。

(-)需要一定的CPU功率。

(-)要求exec()

(-)在较小的地点或流量剧增的地点是不准确的。

2) 改进版本。当用户请求页面并打算运行任务时,不要使用exec(),而是在将内容刷新给用户之后使用include()。

(+)在所有平台上工作。

(+)禁止执行。

(-)需要一定的CPU功率。

(-)在较小的地点或流量剧增的地点是不准确的。

3) 运行一个独立的进程后台,以便它在一个常数循环中运行。提供一个管理界面,让您“开始”和“结束”的“服务”。然后,它将使用fsockopen()调用无限运行的.php脚本。它使用睡眠()来不消耗资源,并在时机成熟时醒来(请参阅: time_sleep_until())。它可以搜索文件并读取它们,以了解何时运行什么任务。您可以创建文件“run - that 3.00 it”,使调度程序在其中运行代码。

(+)在所有平台上工作。

(+)禁止执行。

(+)可能相当准确(例如,如果它每分钟睡觉)。

(-)不稳定-服务器崩溃会完全停止调度程序。

(-)一些主机不喜欢进程运行在24/7/365 =资源占优势?

4) 直接在Linux和.上运行exec('crontab')

(+)它不是资源霸主。

(+)准确。

(-) exec()

(-)并不能在所有平台上工作。

5) 请求cPanel凭据并向其发帖子以创建/管理/删除crons。

(+)准确

(+)它不是资源霸主。

(-)对安全不利

(-)需要用户详细信息=可用性降低

(-)并不能在所有平台上工作(需要在cPanel上不工作的)。

(-)需要cPanel。

还有其他想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-08 17:09:03

您建议的几乎所有方法都是丑陋的,尽管大多数方法都会奏效。

我丑陋的另一种选择是在本地机器上设置cron,该机器连接互联网,运行curl命令,只需几分钟。

它和您所有的解决方案一样难看,但它稍微更可靠一些。

票数 4
EN

Stack Overflow用户

发布于 2009-12-10 15:24:25

我使用一个名为VisualCron的windows工具在远程服务器上ping http-密码保护脚本,然后执行特定的任务。V也内置了不错的电子邮件状态通知。

请注意,这与Zack关于使用本地cron+curl或cron+wget的文章非常相似

http://www.visualcron.com bluetheme.png

票数 2
EN

Stack Overflow用户

发布于 2009-12-09 06:32:01

你曾经使用过windows任务调度程序听命吗?可以使用它作为UNIX上CRON的替代。您可以(1)编写一个PHP脚本来执行所有必要的杂务(2)在UNIX上设置一个CRON作业,或者在Windows上设置一个计划任务,以便通过PHP执行这个脚本。

还可以通过从远程机器从HTTP打开脚本来执行脚本。远程计算机可以是UNIX或Windows机器。可以使用惠特代替web浏览器,这两种平台都可以使用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1812436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档