部署到雲伺服器的Django專案如何同時響應使用者請求以及更新資料

時間 2021-10-25 15:49:53

1樓:

這個和除錯模式的自動過載機制有關,你加上 --noreload 引數試試

和執行緒什麼的沒關係

應該就是個簡單的小專案吧,怎麼簡單怎麼來,runserver 夠用就行,不要聽別個說什麼之後感覺好像就 low 了

2樓:偉倫

搜一下django的入門教程,看下mvc架構是怎麼的傳輸流程吧,定時任務django裝個好像叫django-crontab的外掛程式,setting檔案裡面配置一下,然後 manage.py crontab add 就會啟動定時任務了。

3樓:tu2k1ed

在開發環境執行django 專案時,確實是出現過你問題中的現象。

雖然從你在雲伺服器中部署的方式來看,你應該是新手?

但能注意到這點並問出來,感覺你做事兒還是挺細膩,至少,雖然我也遇到過,但是沒想著去思考為什麼。

現在來解釋一下為什麼我沒有去思考:

manage.py 是django 用來開發時使用的wsgi web 伺服器,它不適合用於部署。部署的時候用uwsgi 亦或者其他asgi web伺服器來執行。

此時,是沒有什麼和manage.py 有關的,也就是,我們程式不會寫在manage.py 中,寫在裡面也沒啥用。

你這裡的目標是,週期性的去執行一些任務。這些任務,可以通過linux 的定時計畫來週期執行,也可以通過程式自己sleep 來定時執行,甚至可以通過celery 定時計畫,甚至可以通過docker 容器,portainer 亦或者k8s 來執行。都比在manage.

py 中來完成好。

現在來說說你的問題:如何部署django 專案並且可以同時不斷地更新資料?

在manage.py 同級目錄新建乙個檔案,匯入你的django 配置,編寫你的資料更新操作,設定週期執行。比如,新建乙個專案,worker.py

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Rumor_of_COVID_19.settings')

def import_data_func():

import_data.import_data_logic_funcprint(threading.current_thread().

name+'入庫完成'time.sleep(3600*24) #每天自動更新資料

if __name__ == "__main__":

import_data_func()

然後部署django,再通過supervisor/ or 其他方式執行部署你編寫的這個檔案,例如,python worker.py。

另外呢,你資料庫裡面出現資料錯誤,我估計是重複性方面的問題,可能是因為兩個執行緒同時執行導致的。如果是這樣的話,你可以去了解一下鎖,資料庫鎖或者外部鎖,加一些判斷。

如何將django部署到伺服器?

ibmall 作業系統 Windows Server 2016資料庫 SQL Server 2014 MySQL5支援語言 Html asp php cgi難道不支援Python嗎?另外一種可選項 Windows Linux Python Django Daphne WhiteNoise 比 Ngi...

vuejs怎麼在伺服器部署?

職座標 如果你選擇的是vue cli這個腳手架,首先第一步 npm run build打包專案 第二步 把打包以後的dist裡面的檔案上傳到伺服器www目錄下 第三步 配置監聽埠號 奔騰年代 部署 Vue CLI 3看這裡有詳細的說明。部署方式基本有兩類,都可以做到正常工作 使用類似於 Nginx ...

伺服器租用 伺服器託管 雲主機哪個好?

泰海科技 伺服器租用更方便快捷,硬體都是IDC提供,省時省力,後期沒有維護操心 伺服器託管 需自已對硬體管理,如果硬體出問題了,還是自己去修,去換。雲主機嘛,適合小型初級使用者 馮仁禹 租用最好,穩定,不用擔心出現的各種問題,專業級的保護和維護,託管的話首先你得有物理機,雲主機的話和物理機比起來穩定...