我正在创建一个laravel的网络应用程序,其中竞价是由用户在多个游戏中完成。竞标是由前端用户和cron作业执行的。Cron的工作在每一秒后在每一场比赛中出价。因此,当同一行同时被访问时,bids之间会发生一些冲突。为了解决并发问题,我决定使用laravel队列进行竞价。但我有多个游戏,因此我想同时出价每一场比赛。我不希望同一游戏的出价在同一时间被处理,因为这样可能会发生并发问题。我想了解一下laravel中的多队列系统。在互联网上搜索后,我了解了多个队列,比如
php artisan queue:work --queue=myJobQueue, myJobQueue1, myJobQueue2,..myJobQueue7但我不确定它是如何工作的。请有人给我详细解释一下,所有7个队列同时工作或一个接一个。
发布于 2021-07-25 05:33:32
这可能是旧的,但只是以防万一,所有的答案都在点上,但你必须将.env变量QUEUE_CONNECTION设置为其他东西而不是同步,如果你的配置设置为同步,它将按照进入队列的顺序获取每个作业(因此完成一个,然后开始下一个),如果它设置为数据库或redis,它将在需要时并行获取作业(这是设置优先级的想法)你应该检查这篇文章(它对我有帮助) https://medium.com/hexavara-tech/optimize-laravel-with-redis-caching-made-easy-bf486bf4c58你还需要在配置/队列.php中配置你的队列,例如在'connections‘数组中:
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => ['default','another_queue'], //this is just 'default' by default
'retry_after' => 90,
],这适用于此文件中的所有其他配置。
https://stackoverflow.com/questions/50576569
复制相似问题