首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在laravel中执行耗时超过30秒的繁重数据库相关任务

如何在laravel中执行耗时超过30秒的繁重数据库相关任务
EN

Stack Overflow用户
提问于 2019-07-26 17:05:29
回答 2查看 140关注 0票数 0

我正在用Laravel开发一个二进制多级营销系统,在注册时,我们必须执行一个任务,为新用户的每个父节点输入许多类型的奖金。这项任务非常耗时。

没有一个用户希望看到缓冲和任务耗时超过30秒,这不是正确的方式。

我想在后台运行此机制,并发送一条成功消息,表明您的帐户已成功创建。

EN

回答 2

Stack Overflow用户

发布于 2019-07-26 17:13:20

您可以使用触发queued jobsobservers

用户对模型执行操作后,观察者在后台创建排队的作业。在处理队列时,用户可以继续工作。

票数 6
EN

Stack Overflow用户

发布于 2019-07-26 17:41:16

要么实现laravel作业和队列,要么使用https://github.com/spatie/async。您可以调用子流程来完成任务

代码语言:javascript
运行
复制
use Spatie\Async\Pool;

$pool = Pool::create();

foreach ($things as $thing) {
    $pool->add(function () use ($thing) {
        // Do a thing
    })->then(function ($output) {
        // Handle success
    })->catch(function (Throwable $exception) {
        // Handle exception
    });
}

$pool->wait();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57216673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档