Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82

    APC: script eseguiti da CLI e webpages non condividono la stessa cache?

    A quanto pare ho un problema enorme da risolvere.

    Situazione attuale: due script che girano in background usando le funzioni shm (shared memorry) per settare delle variabili (giusto degli stati di avanzamento)

    Una pagina web che si aggiorna regolarmente legge i dati e li mostra all'utente sotto forma di progress bar.

    Ogni tanto, ma anche se l'avesse fatto una volta sola sarebbe gravissimo, ottengo un alert di shared memory corrupted variable, parola più parola meno.

    Dato che usiamo apc, mi sono detto "usiamo apc_store e apc_fetch al posto di shm.... "

    Dentro lo script, apc_store e apc_fetch funzionano benissimo, ma accedendoci dal codice della pagina web sembra che la variabile setttata dallo script cli NON ESISTE.

    E' davvero così o sto sbagliando qualcosa?

    Per la comunicazione inter-processo in php, voi cosa usate?

  2. #2
    Utente di HTML.it L'avatar di Kups
    Registrato dal
    May 2013
    Messaggi
    20
    Dipende dalle esigenze e da cosa reputi più idoneo per la tua applicazione, puoi però gestire la cosa in 3 modi differenti:

    - Con proc_open()
    - Con un tuo file di cache (il processo che lavora scrive lo stato su un file e il processo che mostra le info all'utente legge gli aggiornamenti ad ogni giro. Impostando i dovuti lock sul file non dovrebbero esserci problemi)
    - Con i socket (ma non te la consiglio in produzione, in quanto è una feature sperimentale)


    Edit: per curiosità sono andato a verificare la pagina inglese della documentazione di php per socket_create_pair() e lì non c'è l'avvertenza che la funzione è sperimentale.
    L'avviso sulla pagina italiana della documentazione potrebbe pertanto essere una dimenticanza, però è anche vero che come feature è rimasta disabilitata sotto windows nell'arco di versioni comprese tra php 4.3 e php 5.3 quindi -personalmente- non mi ispira molta fiducia.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82
    in 5 minuti abbiamo installato redis, va a meraviglia ... peccato per le prestazioni non ottimali, ma è perfetto... e ora possiamo fare un sacco di cose ..

  4. #4
    beh, se vi servono prestazioni superiori e non vi interessa salvare su disco lo stato (cosa che redis può fare se configurato) allora potete usare memcache che è un po più performante, ovviamente dovete attivare il protocollo binario per migliori prestazioni

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82
    abbiamo risolto il gap delle performarce con memcache, o meglio lo abbiamo 'ignorato' facendo un uso sempre più 'pesante' ed oculato di redis, in particolare dei set, delle hasmap e dei sorted set, in questo modo memcache è stracciato, e comunque abbiamo limato ancora un po' il codice ed ora gira tutto senza alcun problema di performance.

    grazie per l'indicazione del salvataggio su file, abbiamo attivato l'AOF con timing EverySec.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.