我需要创造几个1000万个就业机会。
我已经试过了for-loops和Bus::batch([])
,不幸的是,作业的创建比10个服务器/工人处理作业的时间要长。这意味着工人必须等到工作出现在数据库(redis等)。使用Redis -benchmark,我可以了解到Redis不是问题。
无论如何……是否有一种方法可以批量(而不是批量)创建作业?我在想这样写:
INSERT INTO ... () VALUES (), (), (), (), ...
无论如何,由于某种原因,在for循环或批处理中创建数百万个作业似乎非常慢。可能是因为每次只有一个查询,而不是一个&;upsert&;
对于任何帮助,我将非常感激!写一百万条记录在任何情况下都有点慢。我建议使用以下几种方法来最大化队列性能:
- 创建将创建所有其他作业的作业
- 仅使用
QUEUE_CONNECTION=redis
为您的队列,因为redis在RAM中存储数据是最快的。 - 在响应已处理后创建作业