turk porno porno escort rokettube
Ergebnis 1 bis 6 von 6

Thema: Zend_Cache cached nicht neu

  1. #1
    Neuer Benutzer
    Registriert seit
    07.02.2010
    Beiträge
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Zend_Cache cached nicht neu

    Hallo, ich habe für meine News eine indexAction, die nur alle News abruft und per Paginator darstellt. Das lief alles, jetzt habe ich Cache hinzugefügt:

    PHP-Code:
        public function indexAction()
        {
            
            
    Zend_View_Helper_PaginationControl::setDefaultViewPartial('controls.phtml');
            if (!
    $paginator unserialize($this->_cache->load('news_index'))) {
                
    $select $this->_db->select()
                                ->
    from('News')
                                ->
    order('news_udate DESC')
                                ->
    order('news_cdate DESC')
                                ->
    order('news_ctime DESC')
                                ->
    join(array('member'=>'Member'),
                                            
    'news_user_id = member.member_id');
                
    $paginator Zend_Paginator::factory($select);
                echo 
    "cache...1";
                
    $this->_cache->save(serialize($paginator), 'news_index');
            } else {
                echo 
    "nicht cachen...2";
            }
                    
            
    $paginator->setCurrentPageNumber($this->_getParam('page'1));
            
    $paginator->setItemCountPerPage(3);

            
    $this->view->paginator $paginator;
            
    $this->view->title 'News';
            
    $this->view->showTitle false;
            
    $this->_helper->viewRenderer('index');
        } 
    Der Cache läuft auch soweit. Ändere ich aber einen Datensatz, wird mir auch nur "nicht cachen...2" ausgegeben, der Datensatz wird angezeigt, wie ich ihn hingeändert habe und die Cachedatei ändert sich nicht.
    Wieso wird da nicht entweder die alte Nachricht gelassen, wie ich es erwartet hätte, oder neu gecached?

    Gruß

  2. #2
    Erfahrener Benutzer Avatar von ice-breaker
    Registriert seit
    29.03.2008
    Ort
    Steinbach/Taunus
    Beiträge
    1.862
    Thanks
    0
    Thanked 9 Times in 5 Posts

    Standard

    Wenn du Daten cachest werden diese extra gespeichert, diese Wissen aber nicht, wenn du die Datenbank veränderst und neue Einträge hinzufügst Woher auch
    Du musst dann bei solchen Aktionen manuell den Cache leeren oder die Daten erst in den Cache und dann in der Datenbank speichern (write-through Technik)
    "Die Wahrheit entgeht dem, der nicht mit beiden Augen sieht." -Orici

  3. #3
    Neuer Benutzer
    Registriert seit
    07.02.2010
    Beiträge
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Das war nicht mein Problem dabei, das ist mir auch klar, dass ich den Cache dann manuell löschen muss.

    Mein Problem war eigentlich, dass das neue angezeigt wird! Wieso? Wie du mir bestätigt hast, müsste ich eigentlich den Cache manuell löschen. Jetzt wird aber das neue angezeigt und der Cache nicht aktualisiert.

    Der Cache wird übrigens so initalisiert:
    PHP-Code:
    $this->_cache Zend_Cache::factory('Core''File', array(), array('cache_dir' => '../tmp/')); 
    Gruß

  4. #4
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Kann es sein, dass automatic_serialization an ist und dadurch unserialize() false liefert? Ich finde es übrigens immer bedenlich, nicht auf entsprechende Datentypen zu prüfen, da führt immer mal wieder zu unerwartetem verhalten ...
    Neues Projekt: zandman.de - Status: WIP




  5. #5
    Neuer Benutzer
    Registriert seit
    07.02.2010
    Beiträge
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    automatic_serialization ist standardmäßig aus, und ich hab's ja auch nicht wieder angestellt.

    Hm, okay, auf Datentypen kann ich mal prüfen lassen, da hast du sicher recht, allerdings wird das ja das Problem so jetzt auch nicht lösen! :-)

    Ich glaube, ich weiß, wo das Problem liegt *gg* Kann es sein, dass der Paginator die Daten erst später aus der Datenbank holt und somit die Daten gar nicht im Cache erscheinen?

    Gruß

  6. #6
    Erfahrener Benutzer Avatar von francois
    Registriert seit
    04.01.2008
    Ort
    München
    Beiträge
    179
    Thanks
    0
    Thanked 1 Time in 1 Post

    Standard

    Zitat Zitat von Jackalope Beitrag anzeigen
    Mein Problem war eigentlich, dass das neue angezeigt wird! Wieso?
    Also ich hab da zwei Vermutungen, mit denen würde ich an das Problem dran gehen:
    1) Werden die Cache-Dateien überhaupt geschrieben? (Pfadrichtig, Schreibrechte etc.)

    2) Wann wird der Cache immer gelöscht? (von mir aus hau nen echo rein, damit du siehst ob es auch bei nem Update passiert.)

    Wenn das alles nix nützt ist die Frage was Dir die Abfrage zurück gibt, wenn du den Cache lädst und dann ggf. ab hier das debugging starten.

    Bin gespannt welche Lösung es sein wird.

    PS. Welche Version benutzt du überhaupt ggf. gibts ja auch nen offenen oder behobenen Bug (wenn die Version nicht 1.10.1 ist)!?
    Aber selbst den wirst du mit dem Dubigging erkennen.....

Ähnliche Themen

  1. Zend_Cache: "\tmp" wird nicht gefunden
    Von itsame69 im Forum Core
    Antworten: 7
    Letzter Beitrag: 09.06.2011, 10:52
  2. Class-Cache cached komplettes Objekt?
    Von KingCrunch im Forum Core
    Antworten: 20
    Letzter Beitrag: 12.03.2010, 12:40
  3. Zend_Cache
    Von marlinx im Forum Core
    Antworten: 12
    Letzter Beitrag: 30.03.2009, 01:18
  4. Zend_Cache
    Von Innocentus im Forum Einsteigerfragen
    Antworten: 5
    Letzter Beitrag: 28.01.2009, 20:19
  5. Zend_Cache und Smarty
    Von ChristianFischer im Forum Core
    Antworten: 15
    Letzter Beitrag: 07.06.2007, 12:53

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •