我需要知道laravel 5队列管理系统是否适合大项目(拥有大约100,000名用户)。我想每天做一些类似消息传递(而不是垃圾邮件:)的用户。
对于这份工作(排队),redis是否足够好?或者最好使用专门用于排队的库(如beanstalkd)?laravel排队系统适合大项目吗?
回答
为了公平起见,并尝试发布一个合理的回答这个问题,我们应该考虑以下几点:
- 内容交付
- 需要对系统资源的用户数运行同步队列
100,000订阅的电子邮件需要在RAM中存储100,000个[数据],因此我们将电子邮件地址长度平均为32个字符(byt ES)。
100,000×32个字节= 3.2MB
当然,Laravel的排队系统串行化对象,所以实际的内存使用量可能会更高(用于Laravel队列Redis的内存),但还不足以与关心自己。
我建议在过去,对于发出订阅电子邮件消息的看似成功安装将在以下运行:
- 至少2GB RAM
- 2处理器/核心
Laravel运行的队列系统对服务器不是太重要。一如既往,按照需求进行扩展。
软件对这种(使用Laravel)将包括以下内容:
- Redis的
- 主管
设置Redis的作为Laravel的队列驱动程序。请记住composer require predis/predis
。
您还需要创建用于存储失败作业的迁移。 Laravel有一个内置的默认:
php artisan queue:failed-table
php artisan migrate
一旦安装了监控器,在/etc/supervisor/conf.d
所以创建conf文件是主管可以在配置拿起您的队列:
touch /etc/supervisor/conf.d/myprojectqueue.conf
nano /etc/supervisor/conf.d/myprojectqueue.conf
在那里,布置一个配置,以适应您的环境NT。在下面的演示设置中,将立即在您的队列上执行4个队列转轮:
[program:myprojectqueue]
command=php /path/to/project/artisan queue:listen --tries=1
directory=/path/to/project
stdout_logfile=/path/to/project/storage/logs/supervisord.log
redirect_stderr=true
autostart=true
autorestart=true
numprocs = 4
process_name = %(program_name)s%(process_num)s
保存conf文件。开始/重新启动主管。
欲了解更多信息:
https://laravel.com/docs/master/queues
https://laravel.com/docs/master/queues#supervisor-configuration
谢谢@Justin。这是一个完整而有说服力的答案。我试着拉拉维尔用redis排队。我也检查了laravel代码。我发现laravel自己在管理队列,而redis只是一个支持的数据库。我认为这会让队列变慢。只是想知道如果我想实现与我的主项目分离的队列管理系统,那该怎么办。例如用python(django)和芹菜实现?或者用cpp和beanstalk? –
- 1. 排队系统
- 2. M2E不适合大项目吗?
- 3. 项目龙目岛适合大型java项目吗?
- 4. Perl的排队系统
- 5. 适用于大型项目的快速备份系统
- 6. 团队系统 - 为现有团队项目创建一个Sharepoint项目入口
- 7. 哪些技术适合构建队列管理系统?
- 8. TFS适合小型项目吗?
- 9. 共享内存,MPI和排队系统
- 10. 如何排队系统进程启动
- 11. 可靠的Sinatra快速排队系统
- 12. 合并团队项目
- 13. 合并XTS系列,时间不排队
- 14. Pthread队列系统
- 15. 队列系统php
- 16. 合并TFS团队项目集合
- 17. 结合Laravel类别项目
- 18. 合并两个laravel项目
- 19. LARAVEL - 按关系合理排序
- 20. Laravel投票系统获取用户选择的项目数
- 21. Laravel排队甚至延迟
- 22. Laravel 5.2排队事件
- 23. Laravel 5排队命令
- 24. Laravel团队 - 游戏关系
- 25. 多层/多层系统等于紧耦合系统吗?
- 26. Laravel统计最重复的项目
- 27. mySQL查询队列系统
- 28. 系统V消息队列
- 29. 创建队列系统
- 30. CruiseControl项目可以放入队列吗?
为何否决?如果你对此一无所知,你可以不回答。 –