实施预定推送通知的正确方法是什么?

时间:2017-01-19 06:28:16

标签: php laravel-5 cron

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

任何人都可以给我这方面的建议,因为我是这个概念的新手,我真的不知道在这种情况下该做什么。

2 个答案:

答案 0 :(得分:1)

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

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

您运行该文件 - >检查您是否有任何要发送的通知 - >如果你继续你的逻辑。

如果你没有任何东西,你可以exit;

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

希望这会给你一点启动!

答案 1 :(得分:0)

我们可以根据我们的便利时间在系统中添加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。

由于