2011-09-12 14 views
5

Szukam menedżera kolejek zadań w pliku node.js, który może zostać wywołany przez php. To jest dla aplikacji internetowej, która musi wysyłać wiadomości e-mail, tworzyć pliki pdf i tak dalej chciałbym wykonać asynchroniczny proces php.Kolejka zadań w pliku node.js

Przykład procesu: żąda

  1. użytkownika strona php
  2. PHP wywołuje menedżera kolejek zadanie i dodaje zadania
  3. zadanie jest wykonywane w node.js asynchronicznie PHP, najlepiej gdy jest to nieco bardziej spokojny
  4. zadaniem jest wykonywanie skryptu PHP

Dlaczego ten system „kompleks”?

  1. Piszemy wszystkie nasze web-aplikacji w PHP (Zend Framework)
  2. Chcielibyśmy, aby rozpocząć naukę node.js
  3. Musimy proces asynchroniczny (szybka odpowiedź!)
  4. W " prawdziwe”zadanie powinno być skrypt php, a także, aby wykorzystać już napisane klasy PHP, aby mieć łatwy dostęp do połączeń z bazą danych i mieć tyle DRY jako możliwe

przypadków użycia tego systemu:

  1. Użytkownik rejestruje się, system wyśle ​​e-mail powitalny
  2. użytkownik wykona rozkaz ecommerce, system wyśle ​​fakturę

W końcu chcielibyśmy użyć Node-crona, jak również, aby wykonać niesystemowe zadania typu cron (bardzo specyficzne dla aplikacji). Node-cron wywoła menedżera kolejek zadań, który następnie uruchomi skrypt php.

Czy istnieje już taka aplikacja w węźle?

Odpowiedz

0

Jedną z możliwych opcji jest node-jobs, która wykorzystuje Redis.

+0

Redis jest szeroką instalacją systemową. W jaki sposób moglibyśmy wykonywać zadania węzła (które, mam nadzieję, działają na podstawie jednej aplikacji), używają redis na aplikację? A może powinniśmy to ułatwić, dodając przedrostek wszystkich zleceń nazwą aplikacji (prawdopodobnie odwrotną TLD)? –

+1

Prawdopodobnie zadziała prefiks: odwrotna domena TLD to fajna sztuczka. – Femi

2

W takim przypadku wolałbym kolejkę wiadomości, taką jak RabbitMQ i biblioteki po stronie klienta, takie jak node-amqp i php-amqp. Następnie po prostu prześlij swoją pracę ze skryptu PHP w kolejce i pozwól nodejs odebrać zadanie z kolejki. Dużą zaletą jest to, że jest rozszerzalny i jest szeroko stosowany i testowany na rynku przedsiębiorstw.

+1

Dlaczego miałbyś używać takiego narzędzia do tej konfiguracji? Wygląda na to, że może to zadziałać, ale nadrobić ten cel. Dokładne testy i gotowe na rynek przedsiębiorstwa są oczywiście zaletami, ale łatwość użycia i prostota również się liczą. –

+0

RabbitMQ jest dobrze udokumentowany, niezależny od języka (dziś jest nodejs następnego dnia python, ruby, java?), Aktywna społeczność. Ze względu na prostotę zawsze jest miło, ale wybieram moje technologie także poprzez działanie projektu. – malte