17611538698
webmaster@21cto.com

“Laravel 10.31”发布

资讯 0 1064 2023-11-11 10:57:25


本周 Laravel 框架团队发布了 v10.31,这一版本能够支持在工作队列(Job)中进行批量处理,可按顺序运行工作队列(也称为工作链),也可以并行处理一批工作队列,完成批量工作后能够继续运行队列。

允许以批量方式置于队列

Sebastien Armand添加了在作业队列中批量运行的功能。这是开发者们在 Square 几个地方遇到的一个典型用例。其中会遇到一个需要处理的串行工作流程,会有一个或多个步骤可能应该并行处理,或者可能在最初触发工作流程时其长度未知,还需要创造更多工作队列,以前情形我们还需要知道这一切何时完成,以确保保持队列运转畅通。

以下是 Laravel 更新的Chains & Batches 文档中的示例,必要时先刷新缓存,释放一批Podcast,接着再批量通知Podcast:

use App\Jobs\FlushPodcastCache;
use App\Jobs\ReleasePodcast;
use App\Jobs\SendPodcastReleaseNotification;
use Illuminate\Support\Facades\Bus;
 
Bus::chain([
    new FlushPodcastCache,
    Bus::batch([
        new ReleasePodcast(1),
        new ReleasePodcast(2),
    ]),
    Bus::batch([
        new SendPodcastReleaseNotification(1),
        new SendPodcastReleaseNotification(2),
    ]),
])->dispatch();

Sleep::until() 

处理字符串时间戳

James Hulse贡献了将时间戳字符串传递给函数 Sleep::until(),以确保该值仍是数字。如:

  1. Sleep::until("1699411804");

Sec-Purpose添加了对标头的支持

@nanos在依赖该方法时贡献了对Sec-Purpose标头的支持$request->prefetch():

原因为:虽然大多数用户代理在预获取请求中设置 Purpose: prefetch,但最新版本的firefox中使用 Sec-Purpose: prefetch。这意味着,无论预取状态如何,对请求调用 ->prefetch() 方法对于通过 Firefox 浏览器发送的请求都将返回 false。

以上内容来自Laravel变更日志,可在 GitHub 上查看下面的新功能和更新的完整列表以及10.30.0 和 10.31.0之间的差异。

评论