【问题标题】:CRON PHP Loading TimeCRON PHP 加载时间
【发布时间】:2020-03-10 02:41:03
【问题描述】:

我有一个关于 PHP 和 CRON-Jobs 的问题。 我制作了一个 php 脚本,它有时必须加载很长时间,因为有很多命令。 因此,我制作了几个较小的脚本,因此命令较少。 然后我制作了一个“主脚本”,它通过 Javascript 执行一些 POST 请求。 但正如您所知,Cron 不会执行 Javascript。由于脚本之间的依赖关系,整个脚本需要作为一个大脚本执行。

是否有可能在服务器上将加载超时之前的时间设置得更高,或者这只是从浏览器到浏览器?

或者还有其他想法可以解决这个问题吗?

谢谢

【问题讨论】:

  • 不确定你所说的通过Javascript执行一些POST请求是什么意思?
  • @NigelRen 主脚本从数据库中获取用户,然后为每个用户执行多个脚本

标签: javascript php ajax curl


【解决方案1】:

对于 PHP cronjobs,您可以像这样设置超时和内存限制:

// make sure we have enough time and memory.
ini_set('memory_limit', -1);
ini_set('max_execution_time', 0);
set_time_limit(0);

【讨论】:

    【解决方案2】:

    我认为你的意思是这样的,请下次发布你的一些代码。

    如果您已经将脚本拆分为多个较小的脚本,并且确保它们可以在服务器上允许的max_execution_time 范围内运行,那么您将必须创建一个处理所有 javascript 调用的页面。 该页面所做的只是创建一个会话,该会话“记住”哪些“较小的脚本”应该运行,以何种顺序以及当前脚本正在运行/已经运行。您的浏览器只是通过 AJAX 请求处理“当前步骤”。

    所以在伪代码中它可能看起来像这样:

    Start session
    Load all 'steps' of subscripts
    Increment step number (save to session!)
    Do processing (subscript 1/2/3/etc) ...
    Output status info to browser and let javascript 'poll' this page for next step/status info.
    
    

    【讨论】:

      【解决方案3】:

      谢谢大家的回答。

      我刚刚找到了另一种方法:

      我使用 $_GET 变量进行了切换。所以现在每个“子脚本”现在都在一个 switch 的情况下,最后它将 $_GET 更改为下一步。

      【讨论】:

      • 我只需要使用 wget 完成 CRON 任务
      猜你喜欢
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      相关资源
      最近更新 更多