代码之家  ›  专栏  ›  技术社区  ›  Starx

如何在本地服务器(如wamp)中测试cron作业?

  •  14
  • Starx  · 技术社区  · 14 年前

    如何在本地服务器(如wamp)中测试cron作业?

    10 回复  |  直到 6 年前
        1
  •  13
  •   Community Bayu Bramantya    7 年前

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

    所以cron与apache、mysql、php设置没有任何关系,我认为在Windows中无法可靠地测试为linux cron创建的cronjobs(可能与 Cygwin )

        2
  •  6
  •   Vaibhav V. Joshi    7 年前

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

        3
  •  4
  •   Ashwin    6 年前

    您可以直接从url运行脚本,这意味着如果您想从cron设置运行cron_test.php脚本,并且希望测试结果相同,那么您可以直接从localhost运行此文件,如 http://localhost/XXXX/cron_test.php .

        4
  •  3
  •   Quentin    10 年前

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

    我不会 希望 但是在窗户上做这个。您最好抓取一个virtualbox的副本,创建一个更类似于您的生产环境的东西来进行开发。

        5
  •  3
  •   AsgarAli    7 年前

    您可以运行此:

    set_time_limit(0);
    ignore_user_abort(true);
    while (1)
    {
        //your code here....
        sleep($timetowait);
    }
    

    您可以关闭浏览器脚本将继续

    set_time_limit(0); 使您的脚本在没有时间限制的情况下工作

    sleep($timetowait); 确定在执行下一个命令之前等待的时间 循环()

    ignore_user_abort(true); 即使关闭了浏览器,也允许脚本继续运行

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

        6
  •  2
  •   Mark Baker    14 年前

    只需从命令行运行作业即可。这是你想要测试的工作,而不是cron本身。如果您需要定期执行它来模拟cron,那么使用windows的“计划任务”工具

        7
  •  2
  •   Ihsanullah khan    11 年前

    您只需在Windows环境中用一行命令就可以完成作业。我几乎花了5个小时,所以我想和别人分享是做一个任务。

    • 在程序give php.exe path中,我的安装是C:\wamp\bin\php\php5.3.5\php.exe。
    • 其次,必须放置要运行的文件绝对路径。 -f c:\wamp\www\foo\foo.php 在争论中

    这样就完成了。不需要安装任何东西。

        8
  •  0
  •   Nitin Handa    12 年前

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

    立即设置元引用: 内容=0 每5秒: 内容=5

        9
  •  -1
  •   ZoFreX mxk    14 年前

    你所说的“任人唯亲”是什么意思?在很多网站上都有一个特殊的页面,比如“cron.php”,它会定期点击,通常是这样的:

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

    在这种情况下,您只需要手动点击cron php文件来模拟行为。

        10
  •  -1
  •   Joey Gumbo    13 年前

    试试这个命令

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