我要通过cron-jobs.org在安装Moodle的网站上设置基于Web的cron作业。当我通过命令行方式/usr/bin/php path/to/moodle/admin/cli/cron.php
进行cron作业时,执行和结果都没有问题。但是在cron-jobs中,我的cron任务状态显示为“响应太大”。
我该怎么办?
答案 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
答案 1 :(得分:0)