這是一個適用於你的任何一個學說用戶。我有一個PHP CLI守護進程,每隔n秒檢查一次表以查找尚未處理的條目。它基本上是一個FIFO。無論如何,我總是超過分配給PHP的內存,因爲主幹沒有釋放它的資源。爲了解決這個問題,它爲查詢對象免費提供。我似乎無法讓它工作。下面的代碼:爲什麼PHP Doctine的free()不能正常工作?
22 print "You are using " . (memory_get_usage()/1024). "\n";
23 $query = Doctrine_Query::create()
24 ->from('SubmissionQueue s')
25 ->where('s.time_acted_on IS NULL')
26 ->orderby('s.time_queued')
27 ->limit(1)
28 ->execute();
29 print $query[0]->time_queued . "\n";
30 $query->free();
任何想法我做錯了嗎?
編輯:我使用1.0.3
編輯:我已經嘗試了所有的下面的建議。我非常希望unset()
像我在那裏發現之前,我發現free()
。
這裏有更多的代碼可以幫助任何幫助。在對連接的打開和關閉提出質疑之前,它將成爲生成子進程的守護進程,並且從我體驗到的連接必須是獨一無二的。
1 <?php
2
3 require_once('/usr/local/lib/php/Doctrine/lib/Doctrine.php');
4
5 spl_autoload_register(array('Doctrine', 'autoload'));
6
7 $manager = Doctrine_Manager::getInstance();
8 $manager->setAttribute('model_loading','conservative');
9 Doctrine::loadModels('lib/model/master');
10
11 while(1){
12 print "You are using " . intval(memory_get_usage()/1024) . "\n";
13 $manager->connection('********************************************','master');
14 $query = Doctrine_Query::create()
15 ->from('SubmissionQueue s')
16 ->where('s.time_acted_on IS NULL')
17 ->orderby('s.time_queued')
18 ->limit(1)
19 ->execute();
20 print "[" . $query[0]->time_queued . "]\n";
21 $query->free();
22 unset($query);
23 $query = null;
24 $manager->closeConnection(Doctrine_Manager::getInstance()->getConnection('master'));
25 sleep(5);
26 }
27
一些樣本輸出:
You are using 14949KB
[2008-11-17 13:59:00]
You are using 14978KB
[2008-11-17 13:59:00]
You are using 15007KB
[2008-11-17 13:59:00]
You are using 15035KB
[2008-11-17 13:59:00]
You are using 15064KB
[2008-11-17 13:59:00]
You are using 15093KB
[2008-11-17 13:59:00]
You are using 15121KB
[2008-11-17 13:59:00]
You are using 15150KB
[2008-11-17 13:59:00]
You are using 15179KB
[2008-11-17 13:59:00]
You are using 15207KB
[2008-11-17 13:59:00]
You are using 15236KB
[2008-11-17 13:59:00]
You are using 15265KB
[2008-11-17 13:59:00]
You are using 15293KB
[2008-11-17 13:59:00]
You are using 15322KB
我真的很希望那個。我甚至在發現有關免費之前就已經解決了,於是我匆匆刪除了它。即使它回來,它不工作。 – 2008-11-17 20:31:31