[英]how constantly run a script beside django
我有一個正在運行的Django網站,我正在尋找一種運行腳本的方法,該腳本不斷從Internet提取一些數據並將其插入到我的Django應用程序數據庫中。
只要服務器啟動,如何保持腳本運行? (不需要手動啟動它-根本不想停止它!)我猜芹菜不是我想要的!!
,以及如何在此腳本中使用Django ORM將數據插入db? 我試過線程,但認為應通過調用腳本或..開始。
您確實可以使用celery來完成這項工作,並且可以充分利用ORM,而無需手動查詢數據庫。 進行一項任務,該任務將從互聯網上獲取項目並更新數據庫。 定義一個芹菜任務,該任務將完成您想要的(獲取+保存)
@app.task
def fetching_script():
response = requests.get(url)
for item in response.content:
instance = ModelInstance(**item)
instance.full_clean()
instance.save()
然后在您的芹菜配置中
app.conf.update(
CELERYBEAT_SCHEDULE={
'fetch_and_save': {
'task': 'path.to.your.fetching_script',
'schedule': crontab(minute='*/15'),
}
}
)
例如,這將每15分鍾執行一次任務,因此您需要根據需要或腳本運行多長時間來調整時間。 實現此目的的另一種方法是制作一個獨立的腳本來完成此工作(例如,使用DB包裝器),然后將該腳本放入crontab中,前提是您正在服務器端的Linux發行版中運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.