在我的申請中,用戶擁有與其每月訂購相關的積分(積分)。沒有芹菜的Django中的計劃任務?
我想每月在特定日期爲每個用戶自動填充積分。 請注意,對於每個用戶,這個日期是不同的(取決於訂閱的日期)
我聽說關於計劃任務芹菜,它似乎滿足我的需求,但也許有點矯枉過正。有沒有簡單的(也可以嵌入在Django中)來做到這一點?
在我的申請中,用戶擁有與其每月訂購相關的積分(積分)。沒有芹菜的Django中的計劃任務?
我想每月在特定日期爲每個用戶自動填充積分。 請注意,對於每個用戶,這個日期是不同的(取決於訂閱的日期)
我聽說關於計劃任務芹菜,它似乎滿足我的需求,但也許有點矯枉過正。有沒有簡單的(也可以嵌入在Django中)來做到這一點?
您可以創建一個服務,它可以檢查您的記錄並執行您需要的操作。
這是一個文件,該文件是在項目的根目錄下,像這樣的簡單的例子:
所以源my_service.py
的代碼可以是:
#!/usr/bin/env python
import os
import sys
import time
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings")
form django.contrib.auth.models import User
while True:
rows = User.objects.filter(created___startswith=...)
if not rows:
print 'sleep...'
time.sleep(10)
continue
[you actions should be here]
然後通過python my_service.py
命令在後臺運行它。
或者你可以添加這個腳本放到cron作業(如果是這樣,那麼這部分將改變):
注意:如果你想將其添加到cron作業。你應該改變while True
有限的循環,像這樣:
form django.contrib.auth.models import User
rows = User.objects.filter(created___startswith=...)
if not rows:
sys.exit(1)
while R in rows:
[you actions should be here]
現在在你的cron作業將它每1小時運行,看看到this link它有很多關於它的例子。
注意:這只是一個例子。您應該將該型號名稱更改爲您的型號名稱和查詢。
感謝您的這個想法。不是非常非常優雅,因爲它會在我的數據庫上每隔XX秒查詢一次,不過它的優點很簡單:)一個好的開始。 –
@DavidW。我在幾個項目中,系統應該處理任何用戶輸入,它們每秒都在'entry'表中。我嘗試過這些方法。 ;) – Mortezaipo
您可以使用cron(linux)或windows任務計劃程序(或任何它所調用的)來安排自定義腳本,但詢問推薦的工具是否與SO無關。 – knbk