Passare notifiche tra programmi scritti in diversi linguaggi di programmazione

3

Lavoro in un team di persone con esperienza in vari linguaggi di programmazione. Recentemente ci è stato richiesto di creare un rapporto quando viene effettuato un ordine nel nostro sistema. Il nostro negozio di e-commerce funziona su PHP e il programma per inviare il rapporto è stato scritto in Java. La principale sfida che abbiamo dovuto affrontare è stata la creazione di un modo in modo che il processo Java venga attivato non appena l'ordine è stato effettuato. Allo stesso modo, abbiamo un sacco di programmi scritti in Python, Scala, ecc. Che devono essere coordinati e essere consapevoli di quando eseguire un'attività X quando si verifica l'attività Y.

A partire da ora, la nostra soluzione a questo problema consiste nell'impostare un cron per verificare regolarmente se esiste un file o un valore nel DB e POI eseguire (semplice polling).

Credo che una coda di attività sia un modo giusto per risolvere questo problema. Tuttavia, non sono sicuro di come impostarne uno e in che modo il processo Java saprà che un'attività lo sta aspettando? Inoltre, sarebbe necessario un sacco di cambiamenti nel mio programma PHP per mettere qualcosa in coda di lavoro?

Grazie mille!

    
posta Prakhar 16.07.2014 - 11:06
fonte

1 risposta

4

Abbiamo affrontato un problema simile e abbiamo utilizzato RabbitMQ per il trasporto dei messaggi e formattato i messaggi utilizzando Google Protocol Buffers .

RabbitMQ è eccellente, funziona.

I buffer di protocollo formattano i dati in modo compatto (molto più di XML o JSon) ed è uno schema noto che consente l'interoperabilità tra lingue diverse e architetture di macchine.

Sul lato Java, la libreria client RabbitMQ genera un evento quando un messaggio è pronto per essere consumato. Leggi i documenti RabbitMQ e segui alcuni esempi, diventerà abbastanza chiaro abbastanza rapidamente.

Sul lato PHP, ci sono librerie RabbitMQ che puoi collegare, autenticarti contro un host Rabbit e pubblicare un messaggio. Personalmente non ho usato RabbitMQ con PHP, ma dato che è astratto per altre lingue non dovrebbe essere un grosso problema.

    
risposta data 16.07.2014 - 12:08
fonte

Leggi altre domande sui tag