实施计划推送通知的正确方法是什么



我在拉拉维尔做项目。我想在不同时间向不同的用户发送推送通知。就像我可以为用户分配一个跟进时间,每个用户可以不同。我进行了搜索,并知道我们可以使用 cron 作业的概念,但为此我需要每分钟运行 cron 作业,以便我可以检查是否该发送推送通知了。每分钟运行一次 cron 作业可以吗?因为我认为,它会增加服务器负载。

谁能给我建议,因为我是这个概念的新手,在这种情况下我真的不知道该怎么办。

Cron 作业是一个计划任务,您可以在任何时间间隔内运行。根据您的要求,可以每 1 分钟运行一次。

在这种情况下,您可以提高 cron 的效率。

运行文件 -> 检查是否有要发送的通知 -> 是否继续您的逻辑。

如果你什么都没有,你可以exit;

这意味着,只有当你有一些事情要做(我们应该这样做)时,它才会给服务器一些负载。每分钟运行一个 cron 不会给你带来巨大的服务器负载(再次取决于你如何构建代码/数据库查询以优化使用)

希望这能给你一个良好的开端!

我们可以根据方便的时间在系统中添加 cron。使用以下代码添加代码,以便在实时时间向特定用户发送通知。

$loc_cron_min   = 30;
$loc_cron_hour  = 12;
$loc_cron_date  = 20;
$loc_cron_month = 01;
exec('echo -e "`crontab -l`n'.$loc_cron_min.' '.$loc_cron_hour.' '.$loc_cron_date.' '.$loc_cron_month.' * wget -qO /dev/null http://example.com/cron/sendsnotification.php?userid=1" | crontab -');

我们可以在 php 中使用以下行查看所有调度 cron

$output = shell_exec('crontab -l');
    echo $output;

根据上述代码,通知将于2017年1月20日12:30发送。因此,您不需要每分钟都执行 cron。执行成功后可以删除 cron。

谢谢

最新更新