我想知道在不使用cronjob的情况下向用户发送通知。
是否有任何工具可用于 PHP 或任何库或脚本?什么可以解决这种情况?
先谢谢你的帮助:) 对不起,如果我的英语不好:(
答案 0 :(得分:1)
在laravel中,您可以将作业添加到队列中。您也可以在一定时间内延迟工作。
因此,每次收到新请求时,都可以将作业NotifyAdminIfNoStatusChangeJob
添加到队列中,如此
public function sendNotificationEmail(...)
{
//...
$job = (new NotifyAdminIfNoStatusChangeJob($user))->delay(900);
$this->dispatch($job);
}
所以你在工作中可以做的就是检查状态并通知管理员。 请注意,作业将在15分钟后执行,并根据需要执行。
答案 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