Invia il segnale a un processo scala

1

Ho un cron job in esecuzione che è un'applicazione Scala. Voglio un altro lavoro, che duri per sempre, per fare qualcosa quando finisce questo. Mi sembra che una specie di segnale (segnale Unix / Linux?) Debba essere inviato per questo.

Ad esempio, il primo processo scrive su un file e al termine del secondo lavoro (che è già in esecuzione) legge da quel file e fa qualcosa.

Come devo procedere con questo?

    
posta user2436425 20.07.2015 - 13:53
fonte

1 risposta

1

Penso che il modo più sicuro per farlo sia che il processo di lunga durata ascolti un socket. Una volta che il processo è breve, si connette a quel socket, invia tutte le informazioni rilevanti e si disconnette.

La comunicazione socket a localhost dovrebbe non fallire, quindi questo dovrebbe non introdurre alcun rischio significativo. I socket sono migliori dell'uso dei file da sincronizzare perché non c'è alcun rischio che un altro processo o utente alterino o cancellino il file, e le autorizzazioni dei file non possono impedire il funzionamento di un socket.

Come per altri metodi, i socket consentono di inviare informazioni arbitrarie. Potrebbe essere semplice come "ciao, vai a fare le tue cose" o potrebbe essere una complessa struttura di dati serializzati. Qualunque cosa ti serva.

Infine, in genere i socket utilizzano gli stream per serializzare e deserializzare i dati su entrambe le estremità. Entrambi i socket e gli stream sono molto metodi di comunicazione standard e consolidati supportati da praticamente tutti i sistemi operativi e gli ambienti di programmazione. Anche se cambi il tuo stack tecnologico in futuro o espandi per lavorare con un programma scritto in una lingua diversa oltre a ciò che hai oggi, quella parte dovrebbe comunque funzionare.

Ti consiglio di consultare la lista delle porte IP registrate e selezionarne una che non è in uso. Secondo la parte inferiore della pagina, le porte comprese tra 49.152 e 65.535 non possono essere registrate e dovrebbero essere disponibili per qualsiasi uso (incluso questo) senza interferire con le applicazioni standard (ad esempio un server FTP / SFTP).

    
risposta data 20.07.2015 - 15:00
fonte

Leggi altre domande sui tag