2011-09-12 14 views
5

node.js içinde php tarafından çalıştırılabilen bir iş kuyruğu yöneticisi arıyorum. Bu, e-posta göndermesi gereken pdf dosyalarını ve php işleminin asenkronize edilmesini istediğim bir web uygulamasıdır. sürecinnode.js iş kuyruğu

Örnek:

  1. Kullanıcı isteyen bir php sayfası
  2. Php iş kuyruğu yöneticisi çağırır ve
  3. Görev uyumsuz php node.js yürütülen bir görev ekler, bu kadar, tercihen zaman
  4. Görev daha sakin biraz bir php komut dosyası

Neden bu "karmaşık" sistem yürütmek için mi? Biz php tüm web uygulamaları yazmak

  1. (Zend Framework)
  2. Biz bir asenkron süreç gerekiyor
  3. node.js öğrenmeye başlamak istiyorum (hızlı yanıt!)
  4. "

    : gerçek" görev veritabanı bağlantıları kolay erişim sağlamak için, zaten yazılı php sınıfları kullanmak ve kadar KURU bu sistemin olası

Kullanım durumlarda gibi olması, hem de bir php script olmalıdır

  1. Kullanıcı sistemi, sistem Faturalar Sonunda

gönderecek Kullanıcı e-ticaret sipariş tamamlanır

  • karşılama e-posta gönderir, kendini kaydettirir, biz gerçekleştirmek için, hem de düğüm-cron'u kullanmak istiyorum sistem dışı geniş cron görevleri (çok özel uygulama). Düğüm-cron, daha sonra bir php betiği çalıştıracak olan iş kuyruğu yöneticisini çağırır.

    Düğümde zaten böyle bir uygulama var mı?

  • cevap

    0

    Olası seçenekler, Redis kullanan node-jobs'dur.

    +0

    Redis, sistem genelinde kurulmuş bir afaiktir. Uygulama başına redis kullanmak için, düğüm işlerini nasıl yapabildiğimizi (ki bu uygulama bazında çalışmayı ümit ediyor) nasıl yapabilirdik? Ya da tüm isleri uygulama ismine göre ön ekleyerek (muhtemelen bir ters TLD) bunu kolaylaştırabilir miyiz? –

    +1

    Bir önek muhtemelen işe yarar: ters TLD düzgün bir numaradır. – Femi

    2

    Böyle bir durumda, RabbitMQ gibi bir ileti kuyruğu ve node-amqp ve php-amqp gibi istemci tarafı kitaplıklarını tercih ederim. Sonra işinizi kuyruğunuzdaki PHP betikinizden gönderin ve nodejs'ın işi kuyruktan almasına izin verin. Büyük bir avantajı, genişletilebilir ve kurumsal pazarda yaygın olarak kullanılmakta ve test edilmektedir.

    +1

    Neden bu kurulum için böyle bir araç kullanıyorsunuz? Bu işe yarayabilir gibi görünüyor, ama bu amaç için fazla mühendislik. Kapsamlı testler ve kurumsal pazara hazır olmak elbette avantajlardır, ancak kullanım kolaylığı ve basitlik de imho sayılır. –

    +0

    RabbitMQ iyi belgelenmiş, dilden bağımsız (bugün bir sonraki gün python, ruby, java? Nodejs, aktif topluluk). Neden basitlik her zaman güzeldir, ama teknolojilerimi de projenin faaliyeti ile seçiyorum. – malte