适用于多个Django项目和异步电子邮件的最佳方法



我在Ubuntu服务器中使用Django 2和Python 3.5。我有多个Django项目,这些项目使用相同的virutalenv,因为它们有相同的源代码。

为了使电子邮件发送异步,我使用Django的邮局应用程序,这需要每分钟运行一个crontab来发送数据库中排队的电子邮件。但是,在同一台服务器上有大量Django项目的情况下,这种方法越来越难以维护,所以每分钟我都会遇到巨大的CPU需求激增。这些电子邮件由AWS SES处理。

我正在考虑将Celery与RabbitMQ一起使用,但这让我感到困惑。我会有多个Celery和一个RabbitMQ实例吗?这能在没有干扰的情况下完成吗?

有没有一种方法可以只使用一个异步任务进程,作为Celery和RebbitMQ的替代方案?

假设实例意味着ec2实例,那么您可以拥有任意多(或任意少(的芹菜实例和任意多(或者任意少(个rabbitmq-实例(rabbitmq可以集群(。你所要做的就是确保你的所有生产者(你的django网络服务器(和你的所有消费者(你的芹菜工人(都指向同一个rabbit mq url作为经纪人。

请注意,由于您使用的是AWS,因此您可以使用亚马逊的SQS服务或通过elasticache使用AWS_hosted redis来轻松设置芹菜。

最新更新