php - cron作业被触发而不是在特定时间而不是重复

时间:2017-10-28 07:04:05

标签: php mysql events cron

我是cron jobs的新手,但习惯了php。在我的应用程序中,我需要运行一个脚本/事件,如果一个项目在MySQL数据库中发布,一小时后它的状态将发生变化,从私有到公共,24小时后它的状态将从公共变为过期。我尝试使用Mysql Schedule Events,它运行良好,但几乎所有共享主机都不支持它。

我以前的代码:

                if($query==true){
                  mysqli_query($con,"CREATE EVENT ikiraka.act$id ON SCHEDULE AT (CURRENT_TIMESTAMP + INTERVAL 1 MINUTE) DO UPDATE `ibirakas` set `status`='public' WHERE `id`='$id'") or die(mysqli_error($con));
                  header("location:view-post.php?kiraka_id=$id");
                }

我被解雇的cron工作:

10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1

你可以看到我想要做的事情。因此,cron作业通常在特定时间执行特定任务。如何触发作业而不是正常例程,如何将其设置为在1小时后运行以及24小时后运行特定项目而不是db中的所有内容? 感谢您的帮助

1 个答案:

答案 0 :(得分:2)

你不能在PHP文件和mySQL数据库中完成所有工作吗?

  • 为每个帖子行添加一个名为“time_added”
  • 的列
  • 每小时运行一次cron。
  • 查询数据库并检查超过24小时的帖子,这些帖子的状态设置不正确,表示您已在24小时后对其进行了操作。
  • 查询数据库并检查超过1小时的帖子,这些帖子的状态设置为1小时或24小时后您已经完成了某些操作。
  • 更新帖子的状态。