2014-02-11 52 views
0

我對數據處理和Django的性質有一個小問題。 初學者。我有先進的dhtmlx表網頁。在向表DHTMLX添加行時,會自動將POST數據發送到我的django後端,在此處理此數據並返回XML數據發送到網頁。當一次添加1行時,所有的工作都很好。但是,一次添加多行時,會出現一些問題。對於初學者來說,我已經檢查了發送數據到後端的順序和它的正確性(比如說,按照順序發送行號1,2,3,4)。問題在於後端在查詢到達時處理查詢,通常它們以相同的順序到達(即使Internet的隨機性)。但django立即爲它們啓動相同的功能,並且它是複雜的函數,需要一些時間來計算,然後發送響應。問題在於,每次調用函數時,數據庫中都會發生變化,其中一個變量取決於我們正在改變的數據庫表的大小。雖然具有相同的數據表以錯誤的順序(不同的線程速度)改變,但結果數據是垃圾。Django隊列函數調用

是否有任何自動的解決方案來排隊一個叫做函數的web調用,以便每個調用都可以進入隊列並等待以前的完成? 我只想爲這個功能做一個這樣的隊列。

回答

0

看來你應該在django中建立隊列。如果行需要在後端進行串行處理,則將更改數據插入到隊列中並像處理事件處理程序一樣處理隊列。

您可以使用dhtmlx的事件處理程序和ajax回調處理程序構建發送隊列,但爲什麼?網絡已經很慢,進一步放緩是錯誤的做法。

+0

那麼你是對的。當我更多地思考它時,有一個JavaScript是單線程和Python多線程的問題。表與後端與Internet連接的荒謬性之間的同步。對於很多工作來說,對於大量錯誤來說,對於在它們之間發送的大量數據,在更新之後從頭開始在django中生成整個表比在xml中將其發送到前端更容易,而不是同步兩者。它超級簡單輕便,但它只是跳過問題而不是解決問題:/ – webster58