Ali*_*udi 2 php queue beanstalkd redis laravel
我需要知道laravel 5队列管理系统是否适合大型项目(拥有大约100.000个用户).我想每天都做一些像消息(而不是垃圾邮件:))的用户.
redis是否适合这项工作(排队)?或者最好使用专门用于排队的lib(如beanstalkd)?
为了公平起见并尝试对这个问题发表合理的答案,我们应该考虑以下几点:
100,000个订阅的电子邮件需要在RAM中存储100,000 x [数据],因此我们将电子邮件地址长度平均为32个字符(字节).
100,000 x 32字节= 3.2MB
当然,Laravel的队列系统将对象序列化,因此实际的内存使用量可能会更高(Redis内存用于Laravel队列),但还不足以引起您的注意.
我过去曾建议,发送订阅电子邮件的看似成功的设置将运行如下:
Laravel运行的队列系统对服务器来说并不算太费力.一如既往,按要求进行扩展.
这种软件(使用Laravel)将包括以下内容:
将Redis设置为Laravel的队列驱动程序.记住composer require predis/predis.
您还需要创建用于存储失败作业的迁移.Laravel默认内置一个:
php artisan queue:failed-table
php artisan migrate
安装Supervisor后,创建一个conf文件,/etc/supervisor/conf.d以便Supervisor可以获取队列的配置:
touch /etc/supervisor/conf.d/myprojectqueue.conf
nano /etc/supervisor/conf.d/myprojectqueue.conf
在那里,布置适合您环境的配置.在以下演示设置中,将立即在队列上执行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
Run Code Online (Sandbox Code Playgroud)
保存conf文件.启动/重启主管.
欲获得更多信息:
https://laravel.com/docs/master/queues
https://laravel.com/docs/master/queues#supervisor-configuration
https://laravel.com/docs/master/mail#queueing-mail
https://laravel.com/docs/master/scheduling
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |