2010-07-13 75 views

回答

11

Windows没有Cron(它是Linux系统的主要任务调度程序)。 Windows的版本是Task SchedulerThis question建议使用at命令。

因此,Cron与Apache,Mysql,PHP设置没有任何关系,我认为不可能可靠地测试您为Windows Cron创建的cronjob(可能与Cygwin)。

+1

备注:当前使用任务调度程序的程序是'schtasks','at'已被弃用了几年,因为它仅代表旧版本任务调度程序中存在的功能。 – Joey 2011-05-03 18:35:22

-1

“cron job”是什么意思?在很多网站有喜欢它定期打,通常像这样“cron.php”特殊页面:

0 * * * * wget http://example.org/cron.php 

在这种情况下,你只需要手动打你的cron PHP文件来模拟行为。

+3

“一个cron工作”的意思是cron – Starx 2010-07-13 12:42:25

+0

那么我的意思是,cron工作在做什么?在网站中,术语“cron”通常与“偶尔运行的作业”同义,可以通过任务调度程序或手动打开它来实现。如果你真的需要测试一个crontab,那是一个不同的问题。 – ZoFreX 2010-07-13 13:28:36

+0

好的,那么如何使用任务调度器在一定的时间间隔内执行PHP脚本呢? – Starx 2010-07-22 02:34:28

2

安装cron(是的,它是available for Windows)。

我不会想要尽管在Windows上。你可能会更好地获取一个VirtualBox的副本,并创建一个更类似于你的生产环境的东西来进行开发。

+0

我不认为这回答了这个问题。 wamp是windows,cron是unix/linux,所以只要告诉他安装cron就没有任何意义。他可能的意思是建议一些替代cron的windows – 2014-02-25 21:35:16

+0

@ChetanPaliwal - 大量的UNIX软件在Windows上运行。例如,Cron:http://cronw.sourceforge.net/ – Quentin 2014-02-25 22:47:47

+0

是的,但只是说'安装cron'作为答案而没有给出任何链接或引用,在我看来,(是)不是一个好回答方式 – 2014-02-25 23:08:09

2

只需从命令行运行作业即可。这是你想要测试的工作,而不是cron本身。如果你需要把它周期性的执行模拟的cron,然后使用Windows的“任务计划”设施

0

试试这个commnad

<?php 

echo exec('0 13 * * * D:\wamp\bin\php -f D:\wamp\www\be.php'); 

?> 
+0

be.php里面的代码是什么 – Rathinam 2018-01-12 07:00:51

0

<meta http-equiv="refresh" content="0; url=http://localhost/myproject/cron.php" />

立即成立了元referesh: 内容= 0 每5秒: 内容= 5

+3

这是重定向而不是Cron作业。克伦工作,默默地执行。整个概念是能够执行一些任务,无需用户干预。这会打开窗口中的页面并进行处理。 – Starx 2012-02-27 08:16:30

5

您可以直接从URL运行脚本,也就是说如果您想运行cron_test.php脚本t从cron设置,你想测试结果相同,那么你可以直接运行这个文件从本地主机,如http://www.localhost/XXXX/cron_test.php

1

你只需在一个窗口环境中只用一行即可完成你的工作。我几乎花了我5个小时,所以我想与他人分享是一个任务。

  • 在程序中给php.exe路径,我的安装是c:\ wamp \ bin \ php \ php5.3.5 \ php.exe。
  • 其次你必须把文件绝对路径,你想运行。 -f c:\wamp\www\foo\foo.php中的参数

这样就完成了。没有必要安装任何东西。

2

您可以运行这个命令:

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); le t即使浏览器关闭,脚本也会继续运行

while(1)是一个无限循环,所以在您退出wamp之前,它永远不会停止。

+0

要优化我的投票 - 这是一个.php文件,通过在浏览器中运行触发。它会完成这项工作,但请记住它会让一些Apache进程运行。 – 2016-08-10 19:10:35

7

您可以创建一个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。

相关问题