【问题标题】:php - cron jobs to be triggered rather than at specific times and not repetitivephp - cron 作业被触发而不是在特定时间并且不重复
【发布时间】:2017-10-28 07:04:04
【问题描述】:

我是 cron 作业的新手,但习惯于 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 小时后运行另一个特定项目而不是数据库中的所有内容? 感谢您的帮助

【问题讨论】:

标签: php mysql events cron


【解决方案1】:

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

  • 为每个帖子行添加一个名为“time_added”之类的列
  • 每小时运行一次 cron。
  • 查询数据库并检查 24 小时之前的帖子,这些帖子没有设置正确的状态,表明您在 24 小时后已经对它们进行了处理。
  • 查询数据库并检查超过 1 小时的帖子,这些帖子的状态未设置为表示您在 1 小时或 24 小时后已经对其进行了处理。
  • 更新帖子的状态。

【讨论】:

  • 一个好主意。让我试试
  • 这有帮助吗?
  • 不幸的是,有人恶意否决了我上面的答案以及我在 7 年前的所有其他答案。
  • 对不起兄弟。不知道为什么有人会这样做。无论如何,我会让你知道这是否成功
猜你喜欢
  • 1970-01-01
  • 2015-11-19
  • 2016-03-20
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多