2013-01-02 65 views
1

現在我有一個Python腳本,它使用Boto將大量消息插入到SQS中 - 大約100,000到200,000。只需循環遍歷循環而不創建SQS消息大約需要3分鐘。對於SQS消息,它非常慢。在Python中快速插入大量SQS消息的最佳方式是什麼?

加快速度的最佳方法是什麼?我應該創建一個SQS連接池併線程插入消息嗎?我應該分割消息的列表來插入併產生多個進程,每個進程都有自己的共享列表?

經驗豐富的博託用戶推薦什麼?

+2

@Downvoter請解釋downvote的原因,以便OP可以改善問題。 – zengr

回答

3

你可以嘗試更多的併發性,通過與boto使用eventlet。看看這個SO回答:Fastest way to download 3 million objects from a S3 bucket。同樣的戰略也應該與SQS合作。

但是,您可能想要確保沒有其他更加困難的問題。你是從EC2實例測試這個嗎?如果不是,您可能希望在與SQS端點相同的區域內旋轉一個實例,並在那裏測試,看看它是否只是您的網絡很慢。如果這沒有幫助,那麼也許嘗試一下eventlet。

+0

謝謝。直線上線程只有一點點的併發之後纔有相當的回報。它來自EC2實例。 –

3

併發很重要,無論是通過線程還是多處理或gevent。拿你的選擇。另外,您是否使用send_message_batch?這允許您一次發送10條消息,同時也有很大幫助。

相關問題