【发布时间】:2020-10-22 21:21:52
【问题描述】:
我有一个模型,数据库中有大约 50 万条记录。我需要获取所有项目并将大约 50 万个作业推送到队列中。
我试过了:
Model::cursor()->each(function ($item) {
dispatch(new Job($item));
});
// and
Model::chunk(10000, function ($items) {
foreach ($items as $item) {
dispatch(new Job($item));
}
});
但是在这两种情况下我都遇到了内存泄漏,因为无论如何我都需要迭代所有 500k 记录并调用 dispatch() 方法。有没有将大量数据推送到 Laravel 队列的最佳方法?
【问题讨论】: