blomstra / database-queue
为Flarum添加数据库队列
1.1.0
2024-01-05 22:06 UTC
Requires
- flarum/core: ^1.0.0
Requires (Dev)
- flarum/phpstan: *
- flarum/testing: ^1.0.0
This package is auto-updated.
Last update: 2024-09-08 09:53:08 UTC
README
此扩展允许您通过配置一个cron作业,轻松使用数据库运行队列。
免责声明:此扩展由Blomstra提供“原样”,仅提供社区支持。
背景及何时需要此功能
默认情况下,Flarum在没有任何(后台)队列的情况下运行。这意味着Flarum的所有任务都在处理用户请求的过程中进行处理。
一个很好的例子是发送电子邮件。当使用flarum/subscriptions、fof/follow-tags、ianm/follow-users或任何允许订阅内容的扩展时,会向用户发送电子邮件以通知他们。对于较小的社区来说,这并不是什么大问题,但迟早你会注意到你的请求(例如发帖)可能开始变慢。所有这些电子邮件都是在将帖子存储到数据库后发送的。
为了解决这个不断增加的负担,你可以运行一个队列。队列运行在你的服务器上,它不与用户及其请求交互。然而,一个用户请求可以将任务发送到队列。此扩展提供了一种最简单的队列实现,并且也适用于共享托管环境。
安装
composer require blomstra/database-queue:*
在管理区域中启用扩展。如果您已经设置了Flarum计划任务,则无需做任何其他操作。否则,请参见下文
设置
进入您的托管控制面板,并设置以下任务每分钟运行一次
php flarum schedule:run
或者在cron语言中
* * * * * cd /path/to/flarum && php flarum schedule:run
常见问题解答
与blomstra/flarum-redis有什么区别? Redis包(它不是官方扩展)适用于更大的社区。Redis可以按需扩展工作者的数量。运行从数据库中拉取任务的队列工作器也可能在处理大量通知和其他队列任务时对社区性能产生负面影响。
- Blomstra提供Flarum托管服务。
- https://blomstra.net