如何减小Moodle的“ cron”页面的响应大小

时间:2019-08-02 14:52:57

标签: moodle

我要通过cron-jobs.org在安装Moodle的网站上设置基于Web的cron作业。当我通过命令行方式/usr/bin/php path/to/moodle/admin/cli/cron.php进行cron作业时,执行和结果都没有问题。但是在cron-jobs中,我的cron任务状态显示为“响应太大”。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

或者,您可以使用Google Apps脚本:https://developers.google.com/apps-script

1-创建Google SpreadSheet
2-单击工具>脚本编辑器
3-复制并粘贴以下代码:(替换网址)

function runCron() {
      var url = "http://yourmoodle.com.br/moodle/admin/cron.php";
      var options = {
        'method': 'get',
        //muteHttpExceptions: true,
      };
      var maxRows= 1440;

      try{
        var response = UrlFetchApp.fetch(url, options).getContentText().substring(0,50000);
        Logger.log(response);
      } catch (e) {
        Logger.log(e);
        var response = e;
      }

      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];

      // This logs the value in the very last cell of this sheet
      sheet.insertRowAfter(1);
      sheet.getRange('A2').setValue(new Date()).setNumberFormat("MM/dd/yyyy hh:mm");
      sheet.getRange('B2').setValue(response);

      var lastRow = sheet.getLastRow();
      if(lastRow>maxRows){
        sheet.deleteRow(lastRow);
      }
    }

4-保存和编辑项目的名称
5-单击编辑>当前项目的触发器
6-添加新的触发器
7-将事件源设置为时间驱动,将基于时间的触发器的类型设置为分钟计时器
8-保存并登录以授予您的项目权限。

如果可以选择,请勿使用基于Web的cron。将来的Moodle版本中可能会删除它。
...建议仅从命令行运行cron或设置cron密码以进行远程访问。

参考:
https://docs.moodle.org/38/en/Cron#The_web_based_Moodle_cron_command
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app

https://developers.google.com/apps-script/guides/sheets

答案 1 :(得分:0)

解决方案是找到另一个不受cron-job.org限制的Web cron提供程序。

查看此内容:https://www.easycron.com/

它仍然是免费的,但可以处理返回的大量数据。