2

Heroku にデプロイする小さな Web アプリケーションを作成します。ここでは、ユーザーが更新ボタンをクリックするたびにデータベース内のエントリを更新したいと考えています。毎日、過去 24 時間に一部のユーザーによって更新されていないすべてのエントリを自動的に調べて更新します。

更新機能やWebアプリはDjangoで書いているのですが、更新は別のWebサイトにリクエストを行うため処理に数秒かかるので、複数のユーザーがクリックできるようにこれらのリクエストを並行して行うことを考えていました。同時に異なる更新ボタンを押して、すばやく実行します。

24 時間更新に Heroku の Scheduler を使用することを考えていましたが、この種のユース ケースに使用できるスレッド アプリケーション/実装はありますか? どんなヒントも素晴らしいでしょう。

4

1 に答える 1

2

Celeryは、そのようなスケジュールされたタスクに最適です。Heroku hereでワーカーをセットアップするためのハックを見つけましたが、私は Heroku を使用していないので、あなたは自分でそこにいます.

セロリの使用法は次のように単純になります。

@celery.task
def do_costly_database_update(some_data):
    # do stuff
    pass

# And then in a view...
do_costly_database_update.delay(some_data)

編集:セロリは、次のような構成エントリを使用して、夜間の更新などの定期的なタスクも処理します。

'every-night': {
    'task': 'tasks.do_costly_database_update',
    'schedule': crontab(hour=0, minute=0),
    'args': some_data,
},

Celery のドキュメントはすべて非常に優れています。

于 2012-09-14T03:47:42.517 に答える