0

今日、Amazon SQS の毎月の請求書を受け取りました。キューへの 600.000 リクエストの使用を見て驚きました。

私がしているのは、毎分 1 つのタスクを実行することだけです。これはどのように合計 600.000 リクエストになりますか?

@celery.task(name='tasks.check_for_events')
@periodic_task(run_every=timedelta(minutes=1))  
def check_for_events():    
    now = datetime.utcnow().replace(tzinfo=utc,second=00, microsecond=00)
    events = Event.objects.filter(is_reminder_sent = False).filter(reminder_date_time__range=(now - timedelta(minutes=1), now))    
    dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime) else None    
    for event in events:
          sendEmail.delay( ...)


@celery.task(name='tasks.sendEmail')
def sendEmail(...)
    ....

私はまだセロリに慣れていないので、根本的に間違ったことをしている可能性があります。ヒントはありますか?

4

1 に答える 1

4

まず、SQS は送信、受信、および削除を要求と見なします。だから〜だ

>>> 600000 / 3
200000

タスク。

先月は31日でした。したがって、イベントタスクのチェックだけでは、

>>> 60 * 24 * 31
44640

タスクまたは

>>> 44640 * 3
133920

事前に使用されるリクエスト。

これで、平均化するだけで済みます

>>> (200000.0 - 44640) / 44640
3.4802867383512543

600k のリクエストを取得するための check_for_events 呼び出しごとのイベント。

現在、あなたが扱っているイベントの量はわかりませんが、おそらくこれにより、使用法がより視野に入れられます。

于 2013-02-03T16:52:53.800 に答える