本周 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(),以确保该值仍是数字。如:
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之间的差异。
本文为 @ 寂静日光 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。