Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да комуникираме Web и Worker dynos с Node.js на Heroku?

Както подсказва статията на високо ниво за фонови задачи и опашка, вашият уеб динамометр ще трябва да комуникира с работния ви динамометр чрез междинен механизъм (често опашка).

За да постигнете това, което изглежда, че се надявате да направите, следвайте този общ подход:

  • Уеб заявката е получена от уеб dyno
  • Уеб dyno добавя задание към опашката
  • Worker dyno получава задание извън опашката
  • Worker dyno изпълнява задача, записвайки нарастващ напредък към споделен компонент
  • Проучването от страна на браузъра изисква състоянието на заданието от уеб dyno
    • Уеб dyno запитва споделен компонент за напредъка на фоновата работа и изпраща състоянието обратно на браузъра
  • Worker dyno завършва изпълнението на заданието и го маркира като завършено в споделения компонент
  • Проучването от страна на браузъра изисква състоянието на заданието от уеб dyno
    • Уеб dyno запитва споделен компонент за напредъка на фоновата работа и изпраща завършеното състояние обратно на браузъра

Що се отнася до реалното внедряване, не съм много запознат с най-добрите библиотеки в Node.js, но компонентите, които свързват този процес заедно, са налични в Heroku като добавки.

Опашка:AMQP е добре поддържан протокол за опашка и добавката CloudAMQP може да служи като опашка за съобщения между вашия уеб и работния динамометр.

Споделено състояние:Можете да използвате една от добавките на Postgres, за да споделите състоянието на работа, която се обработва, или нещо по-ефективно, като Memcache или Redis.

Така че, за да обобщим, трябва да използвате междинен допълнителен компонент за комуникация между dynos на Heroku. Въпреки че този подход включва малко повече инженерство, резултатът е правилно отделена и мащабируема архитектура.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Сложни структури от данни Redis

  2. Как да пренасочите изхода на абонамента за redis

  3. Php7 Redis клиент на Alpine OS

  4. Redis клъстер/балансиране на натоварването

  5. redis и watch + multi позволява едновременни потребители