事件发生前几个小时运行功能

时间:2019-05-10 18:30:52

标签: php cakephp cakephp-3.0

我有一个问题。我正在学习cakephp 3,我想做以下工作: 用户输入日期和时间(该日期和时间以日期时间格式保存到mysql中),系统需要在输入的日期时间前几个小时发送电子邮件(例如,之前1小时)

但是,我想在不使用cronjob的情况下执行此操作。

因此用户输入2019-05-12 12:00,我想立即安排任务在2019-05-12 11:00发送电子邮件。

这是可能的,是的,您能给我任何指示吗?我还检查了Cakephp任务,但似乎看不到整个图片

1 个答案:

答案 0 :(得分:1)

创建Shell

bin/cake bake shell CronJobs

打开创建的外壳并创建发送电子邮件的方法,例如:

public function sendEmal()
{
}

在此方法内,添加代码以选择数据,并添加Mailer发送邮件。

现在在您的cron标签设置任务中,并指向该shell脚本,例如

* 1 * * * bin/cake CronJob sendEmail

请阅读:

  1. https://book.cakephp.org/3.0/en/console-and-shells/shells.html
  2. https://book.cakephp.org/3.0/en/console-and-shells/cron-jobs.html
  3. https://book.cakephp.org/3.0/en/core-libraries/email.html

更新:

  

但是,我想在不使用cronjob的情况下执行此操作。

其他方法是实现某些Queue系统。

阅读here了解更多信息