gpt4 book ai didi

php - 在 Laravel 中的特定日期监听和触发事件

转载 作者:行者123 更新时间:2023-12-04 18:04:56 25 4
gpt4 key购买 nike

我正在尝试制作一个供我自己使用的通知脚本。这是我想要实现的目标。当用户注册时,我会获取他们的电子邮件地址和他们提供的通知日期,并将它们保存在配置文件表中。现在在指定的通知日期,应用程序将自动向他们发送电子邮件。到目前为止,我想轻松做到这一点的想法是使用“事件”;但如果我错了,请随时纠正我。
根据我的想法,这是我打算做的事情;对于电子邮件,我可能会注册一个类作为事件的数据。

但我的第一个问题是如何监听该通知日期的事件?

我想每个月向他们发送通知,因此在发送电子邮件后,我将在用户提供的旧通知日期上增加一个月。添加一个月会很容易,因为我在保存通知日期的同时在输入中使用了“碳”。

所以,我的第二个问题是在通知日期更新后,我怎样才能再次收听该事件?

最后,如果我有 100 个用户,并且我想在他们提供的通知日期和特定日期(例如每个月初)向每个人发送相同的通知。我怎么能反复这样做?

请随意提出任何可能易于实现的建议,而不是我的想法。

最佳答案

我觉得你想要完成的事情最好通过预定的命令来完成。有些人通过创建 cron jobs 来做到这一点。这将在预定时调用某个函数。

在 Laravel 4(我假设这就是你正在使用的)中,indatus 有一个很棒的包 dispatcher .我不会讨论如何设置它,因为它们有很好的文档,但是您可以创建计划的作业,您将每 x 天/分钟等检查一次。它也更具可读性。

与 cron 作业相比,Dispatcher 使其更具可读性,例如:

```使用 Indatus\Dispatcher\Scheduling\ScheduledCommand;
使用 Indatus\Dispatcher\Scheduling\Scheduable;
使用 Indatus\Dispatcher\Drivers\DateTime\Scheduler;

类 MyCommand 扩展 ScheduledCommand {

//your command name, description etc.

public function schedule(Schedulable $scheduler)
{
//every day at 4:17am
return $scheduler
->daily()
->hours(4)
->minutes(17);
}

}

``

此功能已 incorporated into laravel 5因此,如果您使用该版本,则无需安装任何额外的软件包。

希望能帮助到你。

[编辑:] Jeffrey Way 关于如何设置和使用调度程序的精彩视频 can be found here.

关于php - 在 Laravel 中的特定日期监听和触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28653302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com