繁体   English   中英

如何创建一个 CRON 作业并每 30 分钟或每小时设置一次,然后在 5 个时间间隔后取消它 php

[英]How to create a CRON job and set it for every 30 minutes or hour and then cancel it after 5 intervals php

所以这就是我想要完成的:用户选择他们希望他们的帖子被移动到页面顶部的频率,无论是每 30 分钟还是每小时或每 2 小时,等等。他们将能够选择它会这样做多少次。 因此,如果他们选择在 5 小时内每小时更新一次,那么它会将数据库中的日期/时间更新为当前时间,然后在接下来的 5 小时内每小时更新一次该时间,并在 5 小时后取消。

我正在考虑运行这样的 PHP 脚本来更新表格,因为广告是按日期 DESC 显示的:

<?php
//cronjob.php
$id = $_SESSION['ad_id'];
$date = date('Y-m-d H:i:s');
$query = "UPDATE ads SET ad_date = :date WHERE ad_id = :id";
?>

有没有最好的方法来做到这一点,或者用户选择的 CRON 作业是否会在服务器上造成过多的负载,以至于用户无法连续设置 CRON 作业。

我看到了这种方法,想知道是否可以为此目的设置它。 我仍然熟悉 CRON 工作。

如何使用 PHP 启动/停止 cronjob?

我将在 Godaddy 的服务器上进行设置:

Godaddy Cron 职位

感谢帮助。

一种方法是将所需的更新存储在一个新的数据库表中,其中包含诸如帖子 ID、更新次数、间隔、剩余更新次数、应该进行第一次更新的时间(或时间下次更新)。

然后,创建一个 php 脚本,从该表中获取数据并为每个帖子采取必要的操作。 检查是否是时候更新帖子了,如果是则更新,否则不要(检查时间精确到分钟,不要检查秒。如果可以,这次用SQL检查而不是在php中检查以减少数据被提取)。 最好在单个查询中执行所有更新以最大化效率。

然后在服务器上设置一个 cron 作业,每分钟或您需要的任何最小时间间隔运行此 php 脚本。

这样,您只需完成一项 cron 工作就可以逍遥法外😉

如果您需要更高的效率,那么在此脚本的末尾,检查是否还有待处理的更新,如果没有,则删除 cron 作业。 然后,设置您的代码,以便每当用户创建新更新时,检查 cron 作业是否存在,如果不存在则创建它(这个额外的动态 cron 作业仅用于提高效率。如果有频繁的更新请求,避免创建/删除 cron 作业可能会更好)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM