laravel队列系统是否适合大型项目?

laravel队列系统是否适合大型项目?,第1张

laravel队列系统是否适合大型项目?

为了公平起见,并尝试对此问题发布合理的答案,我们应该考虑以下几点:

  • 订阅人数
  • 要交付的内容
  • 运行同时队列所需的系统资源

100,000个订阅的电子邮件将需要在RAM中存储100,000 x [数据],因此让电子邮件地址的平均长度为32个字符(字节)。

100,000 x 32字节= 3.2MB

当然,Laravel的队列系统会序列化对象,因此实际的内存使用率可能会更高(Redis内存用于Laravel队列),但不足以引起您的注意。

过去我曾建议过,用于发送订阅的电子邮件的 看似 成功的设置应在以下设备上运行

  • 最低2GB RAM
  • 2个处理器/内核

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

保存配置文件。启动/重新启动主管。

想要查询更多的信息:

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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4924345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存