• Semplice gestore di code

    From Davide Prina@21:1/5 to All on Sun Mar 9 10:20:01 2025
    Ciao a tutti,

    stavo cercando un gestore di code molto semplice e piccolo. Nel senso
    che non deve necessitare di server o demoni in esecuzione.
    In pratica qualcosa da usare per effettuare vari task che vanno da
    esecuzione di comandi/batch a passaggio di messaggi e quindi deve
    gestire stringhe che saranno interpretate dai consumatori.
    L'ideale è che sia FIFO, possa avere più code, si possa vedere per
    ogni coda lo stato e sia persistente soltanto lo stato delle code
    (cosa contengono le code compreso l'ultimo elemento prelevato). Non è
    un problema se tale gestore possa andare in crash o bloccarsi per un
    errore o perdere l'attività in corso o spegnersi il PC.

    Sto notando che alcune volte compio azioni abbastanza ripetitive e
    abbastanza manualmente, però ci sono punti dove la possibilità di far
    partire lo step successivo in automatico potrebbe velocizzare di molto
    il risultato. Se ci fosse un semplice gestore di code potrei passare
    li ad esempio un parametro (che potrebbe essere il nome di un file) e
    il consumatore potrebbe partire subito ad eseguirlo... se invece, il consumatore, stava già eseguendo un altro task, partirebbe con il nuovo immesso appena terminato il precedente.

    Un esempio è l'attività di compilazione automatica dei file PDF che ho trattato in altro thread. I file PDF sono per forza da scaricare a mano, poiché sono generati da un sito web. Attualmente passo il file allo
    script e attendo la compilazione in automatico (un po' di secondi), successivamente devo stampare le prime due pagine fronte e retro
    (dovendo girare manualmente il foglio) e rinominare il PDF per sapere la sequenza di generazione e dare un nome significativo... terminato questo
    passo al successivo e ripeto. Se invece potessi scaricare i file PDF,
    buttarne il nome nella pipe (anche questo passo da automatizzare) potrei
    fare andare il processo di compilazione in automatico senza perdere tempo
    ad attendere che l'esecuzione precedente sia terminata e in un'altra pipe invece mi occuperei di fare il rename e magari in una terza ci metterei eventuali errori generati dai vari script. Poi un'altra attività che
    vorrei fare è provare a comporre due file, il primo con i soli fronti e il secondo con i retro e stampare prima tutti i fronti e poi i retro (anche
    questo potrebbe essere fatto da un ulteriore script che usa un'altra coda
    per aggiungere le pagine).
    In questo modo potrei arrivare ad avere come operazioni manuali solo:
    * scaricamento dei file dal sito in una determinata directory
    * stampa file fonte
    * stampa file retro

    Certamente potrei fare tutto questo senza l'uso di code, però sto notando
    che mi capita di fare attività simili (dove devo attendere per avviare il successivo step) e se ci fosse già un gestore di code pronto potrei
    risolvere questo semplicemente e velocemente senza implementarmi ogni
    volta questa gestione... o crearmi io un gestore di code.

    Ho cercato, ma non trovo nulla che faccia al caso mio o che mi soddisfi:
    * at con l'opzione -now
    * batch
    * nq
    * bq (su github)
    * mkfifo

    L'unico che potrebbe essere adeguato in generale potrebbe essere mkfifo.

    Voi conoscete un gestore di code con le caratteristiche indicate?

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Francesco_Potort=C3=AC?=@21:1/5 to All on Mon Mar 10 09:50:01 2025
    stavo cercando un gestore di code molto semplice e piccolo.
    ...
    In questo modo potrei arrivare ad avere come operazioni manuali solo:
    * scaricamento dei file dal sito in una determinata directory
    * stampa file fonte
    * stampa file retro
    ...
    Ho cercato, ma non trovo nulla che faccia al caso mio o che mi soddisfi:
    * at con l'opzione -now
    * batch
    * nq
    * bq (su github)
    * mkfifo

    at, batch e mkfifo fanno altro, bg non lo conosco.

    nq non lo conoscevo e l'ho scoperto ora, mi sembra esattamente quel che ti serve, perché dici che non ti soddisfa?

    -- fp

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?iso-8859-1?Q?Francesco_Potort=EC?@21:1/5 to All on Mon Mar 10 14:10:02 2025
    Salve, come ci si cancella da questa mailbox?

    Per cancellarsi da una mailing list di solito si guarda se c'è un pi`e di pagina con le istruzioni o, in mancanza, si guardano gli header.

    In questa, se guardi le email che ricevi, vedi che gli header relativi sono:

    List-URL: <https://lists.debian.org/debian-italian/>
    List-Unsubscribe: <mailto:[email protected]?subject=unsubscribe>

    Prova, dovrebbe funzionare

    -- fp

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to All on Tue Mar 11 09:00:01 2025
    This is a multi-part message in MIME format.
    Premere invio, nulla più

    Piviul

    Il 10/03/25 14:54, Giovanni Passalacqua ha scritto:
    Salve, ho cliccato ma mi apre una mail, cosa devo fare? Scusate la mia nobbaggine ------------------------------------------------------------------------ *Da:* Francesco Potortì <[email protected]>
    *Inviato:* lunedì 10 marzo 2025 14:08
    *A:* Giovanni Passalacqua <[email protected]>
    *Cc:* [email protected]
    <[email protected]>; Davide Prina <[email protected]> *Oggetto:* Re: Semplice gestore di code
    Salve, come ci si cancella da questa mailbox?

    Per cancellarsi da una mailing list di solito si guarda se c'è un pi`e
    di pagina con le istruzioni o, in mancanza, si guardano gli header.

    In questa, se guardi le email che ricevi, vedi che gli header relativi
    sono:

    List-URL: <https://lists.debian.org/debian-italian/>
    List-Unsubscribe: <mailto:[email protected]?subject=unsubscribe <mailto:[email protected]?subject=unsubscribe>>

    Prova, dovrebbe funzionare

    -- fp
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p>Premere invio, nulla più<br>
    </p>
    <p>Piviul<br>
    </p>
    <div class="moz-cite-prefix">Il 10/03/25 14:54, Giovanni Passalacqua
    ha scritto:<br>
    </div>
    <blockquote type="cite" cite="mid:GVXP192MB1877F72DBA356F168752FA24ADD62@GVXP192MB1877.EURP192.PROD.OUTLOOK.COM">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <div
    style="font-family: inherit; font-size: inherit; color: rgb(0, 0, 0); background-color: transparent;">
    </div>
    Salve, ho cliccato ma mi apre una mail, cosa devo fare? Scusate la
    mia nobbaggine
    <hr style="display:inline-block;width:98%" tabindex="-1">
    <div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif"
    style="font-size:11pt" color="#000000"><b>Da:</b> Francesco
    Potortì <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a><br>
    <b>Inviato:</b> lunedì 10 marzo 2025 14:08<br>
    <b>A:</b> Giovanni Passalacqua
    <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a><br>
    <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a>
    <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a>; Davide Prina
    <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a><br>
    <b>Oggetto:</b> Re: Semplice gestore di code</font>
    <div> </div>
    </div>
    <div>
    <div
    style="font-family:inherit; font-size:inherit; color:rgb(0,0,0); background-color:transparent">
    </div>
    <font size="2"><span style="font-size:11pt">
    <div class="x_PlainText">&gt;Salve, come ci si cancella da
    questa mailbox? <br>
    <br>
    Per cancellarsi da una mailing list di solito si guarda se
    c'è un pi`e di pagina con le istruzioni o, in mancanza, si
    guardano gli header.<br>
    <br>
    In questa, se guardi le email che ricevi, vedi che gli
    header relativi sono:<br>
    <br>
    List-URL: &lt;<a
    href="https://lists.debian.org/debian-italian/"
    data-auth="NotApplicable" data-ogsc="" style=""
    moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.debian.org/debian-italian/</a>&gt;<br>
    List-Unsubscribe: &lt;<a href="mailto:[email protected]?subject=unsubscribe"
    data-ogsc="" style="" moz-do-not-send="true">mailto:[email protected]?subject=unsubscribe</a>&gt;<br>
    <br>
    Prova, dovrebbe funzionare<br>
    <br>
    -- fp<br>
    </div>
    </span></font></div>
    </blockquote>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Sun Mar 16 09:30:01 2025
    Francesco Potortì ha scritto:

    at, batch e mkfifo fanno altro

    puoi usarli per ottenere un risultato simile

    nq non lo conoscevo e l'ho scoperto ora, mi sembra esattamente quel
    che ti serve,

    no, non hai letto quello che ho scritto

    perché dici che non ti soddisfa?

    perché gestisce job, ma a me serve qualcosa che gestisca messaggi

    Ho cercato in rete e ho visto che molti si sono posti la mia stessa
    domanda. Ho trovato qualche esempio fatto in python.

    Alla fine l'ho fatto io in bash usando sqlite3. È quasi finito, mi
    mancano solo di completare due o tre cose e testarlo.
    In questo modo mi sono fatto qualcosa che soddisfa a pieno le mie
    esigenze: non c'è nulla in esecuzione, ogni volta che è invocato
    esegue quanto gli è richiesto e fa eventuale manutenzione.

    Ciao
    Davide

    PS: sono iscritto alla lista, non inviare le mail anche al mio indirizzo

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?Francesco_Potort=C3=AC?=@21:1/5 to All on Mon Mar 17 13:20:01 2025
    nq non lo conoscevo e l'ho scoperto ora, mi sembra esattamente quel
    che ti serve,

    no, non hai letto quello che ho scritto

    Leggere ho letto, magari non ho capito...

    perché dici che non ti soddisfa?

    perché gestisce job, ma a me serve qualcosa che gestisca messaggi

    nq è un gestore di code, che nella mia interpretazione è la parte più rognosa da implementare nel tuo caso. Certo, gestisce job, ma tu parlavi di stringhe che qualcuno produce e qualcun altro consuma, e se il job è il consumatore di stringhe sei a
    posto. Però evdentemente mi perdo qualcosa.


    -- fp

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Davide Prina@21:1/5 to All on Sun Mar 23 10:30:01 2025
    Francesco Potortì ha scritto:

    Davide Prina ha scritto:

    perché gestisce job, ma a me serve qualcosa che gestisca messaggi

    nq è un gestore di code, che nella mia interpretazione è la parte più rognosa da implementare nel tuo caso.

    dipende da cosa intendi gestire le code... la parte più rognosa è la persistenza e cioè dove i messaggi sono salvati. Per questo ho usato
    sqlite3. Il resto è banale; per il rimanente la parte più complessa è gestire i parametri di input.

    Certo, gestisce job, ma tu parlavi di stringhe che qualcuno produce e
    qualcun altro consuma, e se il job è il consumatore di stringhe sei a
    posto.

    però chi produce il messaggio dovrebbe anche sapere lo script e la
    sintassi di questo.

    Inoltre se io ho una coda di messaggi questa coda può essere letta da
    più consumatori e ognuno fare una cosa differente con i dati in input.

    Domenica scorsa ho fatto i primi test sulla versione 1.00 e devo dire
    che effettivamente mi fa risparmiare un sacco di tempo perché mi elimina diversi passaggi in manuale.

    Ciao
    Davide

    --
    La mia privacy non è affar tuo
    https://noyb.eu/it
    - You do not have my permission to use this email to train an AI -
    If you use this to train your AI than you accept to distribute under AGPL license >= 3.0 all the model trained, all the source you have used to
    training your model and all the source of the program that use that model

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)