Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Drupal7中设置cron作业_Drupal_Cron_Drupal 7 - Fatal编程技术网

在Drupal7中设置cron作业

在Drupal7中设置cron作业,drupal,cron,drupal-7,Drupal,Cron,Drupal 7,我是drupal的新手,负责设置一个每小时运行的cron作业。我有一个php文件,它生成一个xml文件,将在不同的站点上使用 我的问题是:我是否将mycron.php放在根目录中(与cron.php相同),并将crontab配置为每小时运行一次mycron.php 非常感谢您的指导。您可以在自定义模块中使用编写自己的cron作业,并在项目模块中进行设置,以确定每个cron任务的时间和频率。最初我来到本页时问了一个类似的问题。这基本上就是我发现的 您不会从PHP代码运行cron作业,而是从服务器操

我是drupal的新手,负责设置一个每小时运行的cron作业。我有一个php文件,它生成一个xml文件,将在不同的站点上使用

我的问题是:我是否将mycron.php放在根目录中(与cron.php相同),并将crontab配置为每小时运行一次mycron.php


非常感谢您的指导。

您可以在自定义模块中使用编写自己的cron作业,并在项目模块中进行设置,以确定每个cron任务的时间和频率。

最初我来到本页时问了一个类似的问题。这基本上就是我发现的

您不会从PHP代码运行cron作业,而是从服务器操作系统运行cron作业。Cron作业只能在Linux、Unix或macOS中设置,windows没有预装的Cron系统

如果使用VPS,则可以从操作系统(例如)设置cron作业。或者,如果您使用的是共享主机,您很可能可以从帐户的“管理”菜单中设置cron作业,这取决于您的主机提供商

您要做的是在Drupal模块中创建一个端点。菜单中的端点应链接到回调函数,该函数将执行您希望定期运行的操作

功能模块名称菜单(){
返回[
'path/to/endpoint/%'=>[
“标题”=>t(菜单标题),
“描述”=>“一些描述”,
“页面回调”=>“调用函数的名称”,
//传递给回调函数的可选参数,数字与路径中的位置相关
“页面参数”=>[3],
“访问参数”=>[“访问类型”],
“键入”=>菜单\u回调,
]
];
}
检查hook_菜单链接以查看函数返回数组中的元素的作用

/**
*Cron作业回调函数
*@param string$param参数通过url发送
*/
函数名\u函数的\u到\u调用($param){
//对param执行一些操作并执行一些任务
}
在要设置的cron作业中,必须将cron作业指向端点位置。下例中的cron作业将在1月的每个第一天和1月的每个星期一(分钟、小时、月日、月日)运行,时间为4点1分:

(例如,执行一个
man wget
以了解wget选项的作用)

编辑:您显然也可以选择。将代码放入
…\u cron(){}
函数中,该函数将在运行页面范围的cron作业时运行,但不会给您留下太多的控制权

01 04 1 1 1 wget -O - -q -t 1 http://siteurl.tld/path/to/endpoint/argument