2017-10-09 87 views
1

我有我所使用Django-的cron寫入一個cron:如何安排django crons?

from django_cron import CronJobBase, Schedule 

class MyCronJob(CronJobBase): 
    RUN_EVERY_MINS = 1 

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS) 
    code = 'statuscheck.my_cron_job' 

    def do(self): 
     print ("hello") 

它的工作原理,當該命令python manage.py runcrons連續運行兩次,僅提供一個輸出,除非1分鐘已經流逝

我的問題是,那麼我如何安排該命令每週執行3次?

謝謝

回答

1

只需更改分鐘數,因爲有一個小時60分鐘,一天24小時,7天一個星期,你可以這樣做:

RUN_EVERY_MINS = 60 * 24 * 7/3 # three times a week 

關於您評論中提到的問題,我認爲您應該使用CRON。

https://en.wikipedia.org/wiki/Cron

你可以在/etc/crontab加入這一行(替換用實際路徑/path/to):

* * * * * cd /path/to/manage.py && /usr/bin/python manage.py runcrons 

這將運行腳本的每一分鐘。

注意你不會在你的終端會話中看到「你好」。如果你想看到的CRON輸出,你可以把它重定向到一個文件:

* * * * * cd /path/to/manage.py && /usr/bin/python manage.py runcrons >> /tmp/django_cron.log 
+1

嗨@盧瓦克,感謝您抽出時間回覆:)當我運行的cron,只執行一次,這不是」每分鐘執行一次。 什麼應用程序目前它執行一次,如果我試圖再次執行相同的命令,它不工作,除非1分鐘已經失效 - 我是否需要另一個計劃程序來運行我的python manage.py runcrons'? – theMicroGirl

+0

嗨@theMicroGirl我編輯了我的答案來回答您的評論。 –

+0

謝謝你我會嘗試現在:) x – theMicroGirl