0

Celery に渡される引数をプログラムで変更するにはどうすればよいですか? 次のコードで何を変更する必要がありますか。

from celery.task import PeriodicTask

class MyTask(PeriodicTask):
    run_every = timedelta(seconds=1)
    value = ''
    def run(self, **kwargs):
        print 'Passed value %s' % value

アプリケーションの有効期間中に value プロパティを変更できるようにしたいと考えています。値はおそらく辞書になりますが、何かが変わるかどうかは疑問です。

4

1 に答える 1

0

なぜ引数を変更したいのですか?毎回誰が引数を渡しますか? run メソッドは、指定されたスケジュール時刻にスケジューラによって呼び出されます。

データベースなどから「値」を読み取るだけです。

def run(self, **kwargs):
    value = get_value_from_database()
    print 'Passed value %s' % value

それ以外の場合 - http://celery.github.com/celery/userguide/periodic-tasks.html#using-custom-scheduler-classesで説明されているようにカスタム スケジューラ クラスを作成し、そのメソッドの一部をオーバーライドする必要がある場合があります。 .

于 2012-06-14T08:47:43.393 に答える