簡體   English   中英

如何在django旁邊不斷運行腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM