【问题标题】:How to execute a function at a certain date in a web application?如何在 Web 应用程序中的某个日期执行功能?
【发布时间】:2011-03-14 00:59:56
【问题描述】:

我在一个使用 php 和 codeigniter 框架的项目中。我想每 3 个月对数据库进行一次更改。问题是我不知道如何用 PHP 做到这一点。当用户访问页面时,我可以激活一个功能,但我希望它在某个日期自动执行。

【问题讨论】:

    标签: php codeigniter date auto-update


    【解决方案1】:

    如果你有一个被爬虫击中的索引页面,你实际上不必使用 cron,看看你的服务器日志它是不停的。例如,如果您需要每月执行一次任务,下个月保存在文本文件中,当您获得匹配时运行您的任务。把它放在一个你知道爬虫一直在攻击的页面中,当月份发生变化时,它会触发你的脚本。

    【讨论】:

    • 嗨,欢迎来到堆栈溢出! OP 明确指出:I want it to be self-executed at certain date,没有用户。我的猜测是:也没有爬虫。
    【解决方案2】:

    设置一个 cronjob 并制作您自己的引导文件(您将调用此文件并将类和方法作为命令行参数传递。

    这是一种快速而肮脏的方式(完全未经测试)

    // usage: php cmd.php users/cron
    if (php_sapi_name() != 'cli' || count($argv) != 2) {
        exit('Not enough params');
    }
    
    // Fake REQUEST_URI
    $_SERVER['REQUEST_URI']  =  $argv[1];
    
    // include the index bootstrap file
    require 'index.php';
    

    将文件命名为 cmd.php 并设置一个 cron 作业以每月运行一次。

    用法:

    cd root/to/directory && php cmd.php users/prune
    

    这只是一个未经测试的示例 - 但应该为您指明正确的方向 :)

    【讨论】:

      【解决方案3】:

      如果您无法访问 cron,您可以简单地在您的主页上放置一个代码来检查每个访问者的日期,如果当前日期符合模数条件,则执行必要的任务。

      【讨论】:

        【解决方案4】:

        您可以使用 PHP 编写脚本,并使用 CRON 运行它(前提是您将应用程序托管在 UNIX/LINUX 环境中)。

        Here 是一个解释如何使用 CRON 进行 PHP 自动执行的网站。

        【讨论】:

        • +1 很好的链接,但他必须为 Codeigniter 编写一个特定于命令行的引导程序。
        【解决方案5】:

        您需要设置一个 cron 作业 (unix) 或一个 scheduled task (windows) 来为您执行此操作。

        依靠用户点击页面来执行计划任务是非常糟糕的做法。

        【讨论】:

          猜你喜欢
          • 2010-10-31
          • 1970-01-01
          • 1970-01-01
          • 2018-12-04
          • 2017-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-27
          相关资源
          最近更新 更多