2017-07-05 1 views
0

問題は、Djangoモデルフィールドによって特定の条件が満たされたときに自動的にDjango関数を実行する方法です。 Googleはこれについて協力しないことにしました。私は名前のフィールドを持つモデルの名前を確認し、私は関数が実行されることを期待間隔や関数が実行された最後の時間を持ってDjangoモデルのフィールドによって特定の条件が満たされたときにdjango関数を自動化する方法

class Check(models.Model): 

    name = models.CharField(max_length=100, blank=True) 
    interval = models.DurationField(default=td(hours=1)) 
    last_run = models.DateTimeField(null=True, blank=True) 

    def run_function(self): 
     return HttpResponse("....") 

:例えば、私は次のモデルを持っていると言います。特定の間隔の後に毎回関数を呼び出す必要があります。インターバルが経過した後に呼び出される、または別の関数を呼び出す関数を書く最も簡単な方法は何ですか?

私は現在Djangoを学んでおり、私はこれに固執しています。

答えて

0

あなたは定期的なタスクは、Djangoの下で実行させたい場合は、http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

+0

おかげでたくさんの外観を与えることができます。小規模なプロジェクトのための少しの過労ですが、動作します。ブローカーを必要としないライブラリはありますか? – Dominic

+0

Redisを試すことができます。 redis-queueをインストールしてからこのライブラリをhttps://github.com/ui/rq-schedulerにコピーし、DjangoからRedisにスケジューリングします。 – lapinkoira

関連する問題