0

在我的应用程序(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 是我希望发送消息的日期

对不起我的英语不好,希望你能帮我找到解决办法

4

0 回答 0