在我的应用程序(laravel 8)中,我创建了一些消息,将它们存储在 postgrey 数据库中,然后通过 webhook 将它们发送到 discord ans slack。我可以选择立即发送它们或使用数据库中的日期时间延迟它们。
这是我的问题。我不知道如何在截止日期到来时触发事件以通过 webhook 发送它们。
目前我唯一的解决方案是每分钟从数据库中获取所有未发送的消息,检查每条消息的到期日期时间,如果它们与当前日期时间匹配,则发送它们。
当我在我的数据库中存储延迟消息时,我想用现在的时间间隔和截止日期创建一个延迟事件/作业。
我在 2021 年 9 月 4 日 16 点创建了一条消息,发送日期为 2021 年 10 月 4 日 16 点
创建一个延迟 24 小时的事件,以便稍后通过我的 webhook 发送消息。当然,延迟会随着我创建的每条消息而变化,可能从几分钟到几天不等。
我在 laravel 8 中查看队列作业和事件,但我找不到有用的东西
这是我对消息模型的迁移
public function up()
{
Schema::create('messages', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->text('text');
$table->datetime('date_message');
$table->boolean('delay');
$table->boolean('discord');
$table->boolean('slack');
$table->boolean('status');
$table->biginteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
date_message 是我希望发送消息的日期
对不起我的英语不好,希望你能帮我找到解决办法