[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /run/user/33



memcached è praticamente un database che puoi alimentare ed interrogare in vari modi.
Se usi un qualsiasi mount tmpfs puoi poi dargli i permessi che ti pare.
Ho un amico che usa un sistema simile per la gestione della sua domotica. Funziona, ma IMO è piuttosto "cervellotico" e scala malissimo, con molte race condition possibili.

Da quel che hai detto finora, io farei così:
- i sensori mandano le letture con un POST ad un php
- il php salva i valori (eventualmente elaborati) dove serve, p.e. db o memcache
- l'utente interroga un altro php che recupera i dati salvati dal primo

Tutto serializza bene e scala tranquillamente.

Diego

Il 14/11/2024 11:08, Leonardo Boselli ha scritto:
On Thu, 14 Nov 2024, Diego Zuccato wrote:
Ma quale sarebbe esattamente il problema? Se usi fpm, PHP gira con un suo utente diverso da Apache (www-data). Comunque eviterei l'uso della cartella socks.

spiego diversamante: ci sono diversi sensori ambientali che inviano [con dei post in modo asincrono] o vengono interrogati [o con un processo in cron, oppure richiamati dal processo che riceve i dati] e scrivono i dati su un file di log. Questo non è particolarmente critico in quanto cresce di circa 20 kB al giorno. in modo asincrono una richiesta di una certa pagina web deve ritornare un contenuto comprendente due valori, che sono per l'appunto il contenuto degli ultimi due campi dell'ultima riga del log [file CSV].
il tail può funzionare ma non mi pare elegante.
per quello avere quei due valori come unico contenuto di un file che puoi usare in tanti modi mi sembrava il più semplice. memcached non può essere usato come un file [passato come file di configurazione per un comando !].

La domanda la pongo in maniera diversa: c'è in uno dei fs tempfs, ossia che sta solo in ram, un posto dove possano essere dati accessi in scrittura a www-data e un altro gruppo, in lettura per tutti per creare questo file ? [il fatto che sia in ram non è un problema, i dati sono comunque presenti sul log, e se occasionalmente fosse vuoto è accettabile]

ho trovato a giro il suggerimento di usare /dev/shm che in effetti funziona. . vado con quello ? (tanto è un file di massimo 48 byte)

Soluzione alternativa al disco: usa memcached.
Il processo aggiorna la entry di memcache, e php la legge. Semplice, lineare, utile anche per altre cose.

Diego

--
Leonardo Boselli
Firenze, Toscana, Europa

--
Diego Zuccato
DIFA - Dip. di Fisica e Astronomia
Servizi Informatici
Alma Mater Studiorum - Università di Bologna
V.le Berti-Pichat 6/2 - 40127 Bologna - Italy
tel.: +39 051 20 95786


Reply to: