在后台实现一些功能 - Laravel

问题描述

我是 laravel 的新手,我遇到了一个让我发疯的问题。我在共享主机上有一个带有 laravel 8/jetstrean/taiwind css 的 Web 应用程序,我需要在后台运行一些特定的功能(比如在用户在平台上工作 x 个月时发送电子邮件)。因此,我希望您能帮助我了解如何执行以下操作:

  • 目标:在后台执行代码而不将其链接到中间件。 (不是在每个 HTTP 请求之后)
  • 记录日志以查看运行该代码是否有任何问题。

任何帮助将不胜感激。提前致谢...

解决方法

看看日程安排:

https://laravel.com/docs/8.x/scheduling

您可以创建计划在所需时间间隔运行的命令。

https://laravel.com/docs/8.x/artisan

如果您在命令中编写逻辑来检查哪些用户已经工作了 x 个月,那么您可以向这些用户发送电子邮件。

您需要设置调度程序以使用 cron 作业。

cron 作业将运行主 Laravel 调度程序,然后它可以以不同的时间间隔运行控制台命令。

文档说明了如何执行此操作。

https://laravel.com/docs/8.x/scheduling#running-the-scheduler

--

对于奖励积分,您可以发送一个发送电子邮件的工作

https://laravel.com/docs/8.x/queues#creating-jobs

或者你可以触发一个事件并有一个发送电子邮件的监听器

https://laravel.com/docs/8.x/events