OPENSHIFT PaaS 上的 CRON 作业
CRON job on OPENSHIFT PaaS
所以我想定期 运行 我的应用程序中的一个脚本 运行 在 openshift PaaS 上运行。我想定期从我的数据库中删除一些条目。
我已经安装了 CRON 墨盒,我已经放置了一个 bash 脚本,如下所示:
#!/bin/bash
php /erase.php
in .openshift/cron/minutely 每分钟应该 运行 一个脚本。我把 erase.php 放在我的 git 存储库的根文件夹中,所以我认为上面的代码没有错误。
我的 erase.php 看起来像这样:
<?php
try {
$bdd = new PDO('mysql:host=127.*.***.*:****;dbname=track', '****', '*****');
} catch(Exception $e) {
exit('Unable to connect to db.');
}
$sql = "DELETE FROM table";
$q = $bdd->prepare($sql);
$q->execute();
?>
据我所知,上面的代码不会有任何问题。还有什么我想念的吗?
编辑:
问题已解决,在 bash 脚本中,路径必须如下所示:
php$OPENSHIFT_REPO_DIR/erase.php
bash 脚本中的绝对路径似乎不正确。您的回购目录不是根目录。您可以使用 environment variables 指定 bash 脚本的绝对路径。由于 erase.php
在你的 repo 的根目录中,那将是:
php $OPENSHIFT_REPO_DIR/erase.php
如果您需要对作业本身进行故障排除,您应该在 ~/app-root/logs/cron_minutely.log
中看到 minutely
cron 作业的错误日志。
如果 cron 作业看起来根本不是 运行,请确保您已将 Cron add-on cartridge 添加到您的应用程序并且您的 bash 脚本文件是可执行的,因为在评论中建议。
所以我想定期 运行 我的应用程序中的一个脚本 运行 在 openshift PaaS 上运行。我想定期从我的数据库中删除一些条目。 我已经安装了 CRON 墨盒,我已经放置了一个 bash 脚本,如下所示:
#!/bin/bash
php /erase.php
in .openshift/cron/minutely 每分钟应该 运行 一个脚本。我把 erase.php 放在我的 git 存储库的根文件夹中,所以我认为上面的代码没有错误。 我的 erase.php 看起来像这样:
<?php
try {
$bdd = new PDO('mysql:host=127.*.***.*:****;dbname=track', '****', '*****');
} catch(Exception $e) {
exit('Unable to connect to db.');
}
$sql = "DELETE FROM table";
$q = $bdd->prepare($sql);
$q->execute();
?>
据我所知,上面的代码不会有任何问题。还有什么我想念的吗?
编辑: 问题已解决,在 bash 脚本中,路径必须如下所示: php$OPENSHIFT_REPO_DIR/erase.php
bash 脚本中的绝对路径似乎不正确。您的回购目录不是根目录。您可以使用 environment variables 指定 bash 脚本的绝对路径。由于 erase.php
在你的 repo 的根目录中,那将是:
php $OPENSHIFT_REPO_DIR/erase.php
如果您需要对作业本身进行故障排除,您应该在 ~/app-root/logs/cron_minutely.log
中看到 minutely
cron 作业的错误日志。
如果 cron 作业看起来根本不是 运行,请确保您已将 Cron add-on cartridge 添加到您的应用程序并且您的 bash 脚本文件是可执行的,因为在评论中建议。