【发布时间】:2011-03-15 07:27:36
【问题描述】:
如何在 WAMP 等本地服务器中测试 cron 作业?
【问题讨论】:
如何在 WAMP 等本地服务器中测试 cron 作业?
【问题讨论】:
你所说的“一个 cron 工作”是什么意思?在很多网站上都有一个特殊的页面,比如“cron.php”,它会定期点击,通常是这样的:
0 * * * * wget http://example.org/cron.php
在这种情况下,您只需要手动点击您的 cron php 文件来模拟行为。
【讨论】:
安装cron(是的,它是available for Windows)。
我不会想要在 Windows 上这样做。您最好获取 VirtualBox 的副本并创建更类似于您的生产环境的东西来进行开发。
【讨论】:
install cron 作为答案而不提供任何链接或参考,这不是一个好的回答方式
Windows 没有 Cron(它是 Linux 系统的主要任务调度程序)。 Windows 版本是Task Scheduler。 This question 推荐使用 at 命令。
因此 Cron 与 Apache、Mysql、PHP 设置没有任何关系,我认为无法可靠地测试您在 Windows 中为 Linux Cron 创建的 cronjobs(可能使用Cygwin)。
【讨论】:
schtasks,at 已被弃用几年,因为它仅代表旧版本的任务调度程序中存在的功能。
只需从命令行运行作业。这是您要测试的工作,而不是 cron 本身。如果您需要让它定期执行以模拟 cron,请使用 Windows“计划任务”工具
【讨论】:
试试这个命令
<?php
echo exec('0 13 * * * D:\wamp\bin\php -f D:\wamp\www\be.php');
?>
【讨论】:
<meta http-equiv="refresh" content="0; url=http://localhost/myproject/cron.php" />
立即设置元引用: 内容 = 0 每 5 秒: 内容 = 5
【讨论】:
你可以直接从 URL 运行你的脚本,这意味着如果你想从 cron 设置运行 cron_test.php 脚本并且你想测试相同的结果,那么你可以直接从 localhost 运行这个文件,比如http://localhost/XXXX/cron_test.php。
【讨论】:
您只需一行就可以在 Windows 环境中 cron 执行您的作业。我几乎花了我 5 个小时,所以我想与其他人分享是做一个任务。
-f c:\wamp\www\foo\foo.php
这样就完成了。无需安装任何东西。
【讨论】:
你可以运行这个:
set_time_limit(0);
ignore_user_abort(true);
while (1)
{
//your code here....
sleep($timetowait);
}
您可以关闭浏览器,脚本将继续运行
set_time_limit(0); 让您的脚本不受时间限制地运行
sleep($timetowait);确定执行下一个前要等待的时间
while() 循环
ignore_user_abort(true);即使浏览器关闭也让脚本继续运行
while(1) 是一个无限循环,所以在你退出 wamp 之前它永远不会停止。
【讨论】:
您可以创建一个 html 页面并在浏览器上打开它。 javascript setInterval 函数将调用指定的时间段。
以下是执行此操作的代码。指定您的时间间隔(例如 5000,每 5 秒运行一次)
<html>
<head>
<title>Cron</title>
</head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<body>
<h1>Cron page</h1>
<script type="text/javascript">
setInterval(function(){
$.get('http://localhost/test/test.php', function(data) {
console.log(data);
});
}, 5000);
</script>
</body>
</html>
注意:为避免 CORS,您应该从同一主机调用 ajax 或允许来自服务器端的 CORS。
【讨论】: