Perché non posso accedere al mio chiave di cache personalizzato tramite CLI quando è stato impostato attraverso una richiesta web?

magento.stackexchange https://magento.stackexchange.com/questions/5543

  •  16-10-2019
  •  | 
  •  

Domanda

Ho un metodo che chiama il codice da un richiesta web.

Mage::app()->getCache()->save('bar', 'foo', array(), 60*5);

Ho un altro metodo che chiama

Mage::app()->getCache()->load('foo');

Il metodo che carica il valore memorizzato nella cache restituisce il valore corretto quando viene chiamato tramite una richiesta Web, ma sempre restituisce falso quando si esegue il codice tramite la CLI.

La ragione per cui sto cercando di correre attraverso la CLI è che il codice in questione fa parte di un compito cron. Sto usando n98-magerun sys:cron:run foobar_cron per eseguire il codice.

Il mio primo pensiero è stato che forse in esecuzione dalla CLI avrebbe avviato una diversa visualizzazione negozio, ma ho fatto un passo attraverso il codice e non hanno trovato nulla di simile.

Cercando di ottenere il valore memorizzato nella cache quando si esegue via web attraverso le opere di amministrazione.

sto usando lo standard Magento file system di cache, e non hanno alcuna impostazione della cache personalizzate nella mia local.xml. EE 1.12.0.2 esecuzione.

Mi aspetterei che quando ho creato una chiave di cache tramite una richiesta web che ho potuto accedere lo stesso valore quando si esegue tramite la CLI e vice verca. Perché non è questo lavoro come previsto, e cosa posso fare per risolvere il problema?

È stato utile?

Soluzione

La mia scommessa è sui permessi dei file. Assicurati che il tuo directory var/cache/ è di lettura / scrittura sia per l'utente shell e l'utente esegue Apache sotto.

Dove non può leggere dalla directory della cache normale, sarà fallback silenziosamente nella directory di sistema temporanea, riempiendolo di più di un semplice paio di Zend record di cache / locale.

Altri suggerimenti

Se il backend cache è APC poi CLI e Apache APC sono completamente diversi e non può essere condiviso tra i due, purtroppo.

Se il backend cache è filesystem basato allora si dovrebbe guardare i permessi. Se le autorizzazioni è un problema che si potrebbe prendere in considerazione in esecuzione il cron come l'utente Apache come un lavoro in giro, tuttavia, che non è l'ideale, una scelta migliore è quella di guardare con ACL - dare un'occhiata al comando setfacl se questo è applicabile alla vostra distro Linux

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top