如何testing像WAMP这样的本地服务器的cron作业?
Windows没有Cron(这是Linux系统的主要任务调度程序)。 Windows的版本是Task Scheduler 。 这个问题建议使用at命令。
因此,Cron与Apache,Mysql,PHP的安装程序没有任何关系。我不认为可以可靠地测试你为Windows Cron创建的cronjob(可能是Cygwin )。
您可以创建一个HTML页面并在浏览器中打开它。 javascript setInterval函数将调用指定的时间段。
以下是执行此操作的代码。 指定你的时间间隔(例如每5秒运行5000次)
<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。
你可以直接从URL运行你的脚本,也就是说如果你想从cron设置运行cron_test.php脚本,并且你想测试结果是一样的,那么你可以直接从localhost运行这个文件,如http://www.localhost/ XXXX / cron_test.php 。
只需从命令行运行该作业即可。 这是你想测试的工作,而不是cron本身。 如果您需要定期执行以模拟cron,请使用Windows“计划任务”工具
安装cron(是的,它可用于Windows )。
我不想在Windows上这样做。 你可能会更好地抓住一个VirtualBox的副本,并创建一个更好的类似于你的生产环境来做你的开发。
你可以只用一行就可以在windows环境下工作。 我几乎花了我5个小时,所以我想与其他人分享是一个任务。
-fc:\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。
试试这个commnad
<?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" />
立即设置一个元刷新:每5秒content = 0:content = 5
你是什么意思“一个cron工作”? 在很多网站上都有一个像“cron.php”这样的特殊页面,这个页面是周期性的,通常是这样的:
0 * * * * wget http://example.org/cron.php
在这种情况下,你只需要手动打你的cron php文件来模拟行为。