Cho*_*per 6 daemon amqp swiftmailer rabbitmq symfony
我想异步发送电子邮件以获得更快更轻的http响应,但我正在努力解决许多新概念.
例如,文档讨论了spool.它说我应该将spool与文件一起使用,然后使用命令发送电子邮件.但是我应该如何运行该命令呢?如果我设置cronjob每1分钟执行一次该命令(可用的最小值cron),用户将不得不平均等待30秒才能发送电子邮件(例如,注册电子邮件).
所以我想改用队列.我已经在使用RabbitMQBundle进行图像处理(例如缩略图创建).但是我只是定期使用这个,所以它是从cronjob中消耗掉的.
也许我应该创建一个始终等待新邮件到达电子邮件队列并尽快交付的守护进程?
解决方案是将每封电子邮件发送到队列,然后通过服务使用该队列。我的服务非常简单,它只是从队列中取出项目,其中每个项目都是一个包含 from、to、body 等的数组,然后发送该电子邮件。我正在使用 Thumper,这使得 Rabbit 更易于使用:github.com/videlalvaro/Thumper。我使用“sv”(来自 Runit)确保服务始终启动:smarden.org/runit/sv.8.html。您可以使用您喜欢的任何其他服务或守护程序管理器。