San*_*etR 1 php cron openshift
我在openshift中创建了一个应用程序.我有一个应该每分钟运行一次的cron,因为它被放在cron里面的一个小文件夹里.但它永远不会运行.它是一个PHP脚本,使用curl命中网址.任何的想法
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)
我创建了这个脚本并将其放在.openshift/crons文件夹中的细分文件夹中.然后我重新启动了我的申请.但它不起作用.任何的想法?
您将需要两个文件.
1:CRON文件
它是一个脚本,将执行您的PHP脚本.您需要将它放在细分文件夹中.我们将其命名为"crontest.sh",因此完整路径将为此,其中000000000000000000000000是您自己的OPENSHIFT_APP_UUID:
/ var/lib/openshift/000000000000000000000000 /app-root/runtime/repo/.openshift/cron/minutely/crontest.sh
该文件仅包含以下行:
php $OPENSHIFT_REPO_DIR/php/crontest.php
Run Code Online (Sandbox Code Playgroud)
2:PHP文件
它是您的PHP脚本,将由您的Cron脚本每分钟执行一次.您需要放在Cron文件中指定的同一文件夹中.我们将其命名为"crontest.php",因此完整路径将为此,其中000000000000000000000000是您自己的OPENSHIFT_APP_UUID:
/ var/lib/openshift/000000000000000000000000 /app-root/runtime/repo/php/crontest.php
该文件包含您的PHP脚本,例如,这将使您的PHP脚本旁边显示一个名为"crontest.txt"的文件,其中包含与传递的分钟数一样多的"1":
<?php
file_put_contents(getenv('OPENSHIFT_REPO_DIR').'php/crontest.txt', '1', FILE_APPEND);
?>
Run Code Online (Sandbox Code Playgroud)
要回答SanksR的具体问题,PHP文件将在"app-root/runtime/repo/php/crontest.php"文件中包含以下代码,而"app-root/runtime/repo/.openshift/cron/minutely" /crontest.sh"将包含这个:" php $ OPENSHIFT_REPO_DIR/php/crontest.php ".
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
Run Code Online (Sandbox Code Playgroud)