PHP提交通知后15分钟自动发送通知

时间:2015-11-13 09:18:17

标签: php laravel notifications

我想知道在不使用cronjob的情况下向用户发送通知。

  • 这里是情景
    一旦userA提交了表格来接他/她,通知(发送电子邮件或将数据库状态更改为"待定"并在网络面板中发出提醒或某种通知)管理员如果没有人回复提取用户A在15分钟。

是否有任何工具可用于 PHP 或任何库或脚本?什么可以解决这种情况?

先谢谢你的帮助:) 对不起,如果我的英语不好:(

2 个答案:

答案 0 :(得分:1)

在laravel中,您可以将作业添加到队列中。您也可以在一定时间内延迟工作。 因此,每次收到新请求时,都可以将作业NotifyAdminIfNoStatusChangeJob添加到队列中,如此

public function sendNotificationEmail(...)
    {
        //...

        $job = (new NotifyAdminIfNoStatusChangeJob($user))->delay(900);

        $this->dispatch($job);
    }

所以你在工作中可以做的就是检查状态并通知管理员。 请注意,作业将在15分钟后执行,并根据需要执行。

在此处检查延迟的队列:http://laravel.com/docs/5.1/queues#delayed-jobs

答案 1 :(得分:0)

你应该为此设置cron作业。您可以按分钟比较时差,然后根据标准发送电子邮件或更新数据库。

您可以运行PHP脚本。您必须通过CLI界面执行此操作。

#!/usr/bin/env php
<?php
# This file would be say, '/usr/local/bin/run.php'
// code
echo "this was run from CRON"

然后,在crontab中添加一个条目:

* * * * * /usr/bin/php -f /usr/local/bin/run.php &> /dev/null

如果run.php脚本具有可执行权限,则可以直接在crontab中列出,也可以不使用/ usr / bin / php部分。 &#39; env php&#39;脚本中的部分将找到实际运行PHP代码的适当程序。因此对于可执行文件&#39; version为文件添加可执行权限:

chmod +x /usr/local/bin/run.php

然后将以下条目添加到crontab:

* * * * * /usr/local/bin/run.php &> /dev/null