我需要處理一箇中等項目的電子郵件,該項目將預計每小時發送20或30封電子郵件。電子郵件 - 流程廣告網站電子郵件與自定義解決方案或使用芹菜/ RabbitMQ?
我在其他項目中設計了一個解決方案,該解決方案使用數據庫表和每5或10分鐘運行一次的cronjob來處理此問題。數據庫表格非常簡單。看起來像這樣:
CREATE TABLE "atem_emails_envios" (
"id_email_envio" int4 NOT NULL,
"id_email_msg" varchar(20) NOT NULL,
"dat_inserted" timestamp NOT NULL,
"dat_sended" timestamp,
"try_number" int4,
"max_tries" int4 NOT NULL,
"email_from" varchar(500) NOT NULL,
"email_to" varchar(500) NOT NULL,
"email_cc" varchar(500),
"email_bcc" varchar(500),
"email_subject" varchar(500) NOT NULL,
"email_msg" text NOT NULL,
"error_msg" text,
"i_started" timestamp,
"pid" int4,
"coment" varchar(2000),
"id_utiliz_ins" varchar(45),
"id_utiliz_upd" varchar(45),
"data_ult_actual" timestamp,
PRIMARY KEY("id_email_envio"),
CONSTRAINT "Ref_atem_emails_envios_to_atem_mensagens_email" FOREIGN KEY ("id_email_msg")
REFERENCES "atem_mensagens_email"("id_email_msg")
MATCH SIMPLE
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
);
當處理電子郵件時,我只是將PID存儲到表中以避免衝突。
我的問題在這個方向。我一直使用這張表來處理低流量網站的電子郵件,並且運行良好。使用像Celery這樣的隊列管理器和像RabbitMQ這樣的經紀商有什麼優勢?在我看來,我會增加另一層複雜性。使用Celery/RabbitMQ等解決方案可以帶來哪些好處?
請給我一些線索。
最好的問候,