SlideShare une entreprise Scribd logo

Using Magento 2.3 MySQL Queues

Basic Queue Implementation in Magento 2

1  sur  78
Télécharger pour lire hors ligne
© 2019 Magento, Inc. Page | 1
Magento 2.3
Using MySQL For Queues
© 2019 Magento, Inc.
.
Page | 2
Senior Software Developer at BORN Group
Renu Mishra
© 2019 Magento, Inc. Page | 3
Agenda
© 2019 Magento, Inc. Page | 4
Agenda
 Need Of Queue
 Introduction to Queues
 Creating Queues with MySQL
 Publishing messages to Queue
 Consuming the published message
© 2019 Magento, Inc. Page | 5
Not In Scope
© 2019 Magento, Inc. Page | 6
Not In Scope
 Parallel Consumer processing.
 Batch Processing.
 AMQP Implementation (RabbitMQ).
 Advanced Error handling (Rejecting and Re-queuing).
 Supervisiord for consumer monitoring.
Publicité

Recommandé

Contenu connexe

Tendances

Design Patterns in React
Design Patterns in ReactDesign Patterns in React
Design Patterns in ReactTomasz Bak
 
Python Programming - XIII. GUI Programming
Python Programming - XIII. GUI ProgrammingPython Programming - XIII. GUI Programming
Python Programming - XIII. GUI ProgrammingRanel Padon
 
Aem sling resolution
Aem sling resolutionAem sling resolution
Aem sling resolutionGaurav Tiwari
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for androidzhang ghui
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners Varun Raj
 
Angular data binding
Angular data binding Angular data binding
Angular data binding Sultan Ahmed
 
I rods분석(20170313,01,김선태)
I rods분석(20170313,01,김선태)I rods분석(20170313,01,김선태)
I rods분석(20170313,01,김선태)Suntae Kim
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcabderrahim marzouk
 
JavaScript - Chapter 15 - Debugging Techniques
 JavaScript - Chapter 15 - Debugging Techniques JavaScript - Chapter 15 - Debugging Techniques
JavaScript - Chapter 15 - Debugging TechniquesWebStackAcademy
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)Horiguchi Seito
 

Tendances (20)

Design Patterns in React
Design Patterns in ReactDesign Patterns in React
Design Patterns in React
 
Z4.02
Z4.02Z4.02
Z4.02
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
IPC with Qt
IPC with QtIPC with Qt
IPC with Qt
 
Python Programming - XIII. GUI Programming
Python Programming - XIII. GUI ProgrammingPython Programming - XIII. GUI Programming
Python Programming - XIII. GUI Programming
 
Aem sling resolution
Aem sling resolutionAem sling resolution
Aem sling resolution
 
O1.01
O1.01O1.01
O1.01
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
 
Introduction to React JS for beginners
Introduction to React JS for beginners Introduction to React JS for beginners
Introduction to React JS for beginners
 
Z5.01
Z5.01Z5.01
Z5.01
 
Angular data binding
Angular data binding Angular data binding
Angular data binding
 
Z5.02
Z5.02Z5.02
Z5.02
 
Android presentation - Gradle ++
Android presentation - Gradle ++Android presentation - Gradle ++
Android presentation - Gradle ++
 
I rods분석(20170313,01,김선태)
I rods분석(20170313,01,김선태)I rods분석(20170313,01,김선태)
I rods분석(20170313,01,김선태)
 
Marzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
 
Rodzaje ubezpieczeń
Rodzaje ubezpieczeńRodzaje ubezpieczeń
Rodzaje ubezpieczeń
 
JavaScript - Chapter 15 - Debugging Techniques
 JavaScript - Chapter 15 - Debugging Techniques JavaScript - Chapter 15 - Debugging Techniques
JavaScript - Chapter 15 - Debugging Techniques
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 

Similaire à Using Magento 2.3 MySQL Queues

The long way from Monolith to Microservices
The long way from Monolith to MicroservicesThe long way from Monolith to Microservices
The long way from Monolith to MicroservicesIgor Miniailo
 
A long way from Monolith to Service Isolated Architecture #MM19NL
A long way from Monolith to Service Isolated Architecture #MM19NLA long way from Monolith to Service Isolated Architecture #MM19NL
A long way from Monolith to Service Isolated Architecture #MM19NLIgor Miniailo
 
Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2Igor Miniailo
 
Magento 2.3 Schema and Data Patches
Magento 2.3 Schema and Data PatchesMagento 2.3 Schema and Data Patches
Magento 2.3 Schema and Data Patchesatishgoswami
 
Backwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NLBackwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NLIgor Miniailo
 
Backward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide WebinarBackward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide WebinarIgor Miniailo
 
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...Meet Magento Italy
 
IRJET- Development of Android Application for Device to Device Communication ...
IRJET- Development of Android Application for Device to Device Communication ...IRJET- Development of Android Application for Device to Device Communication ...
IRJET- Development of Android Application for Device to Device Communication ...IRJET Journal
 
API design best practices
API design best practicesAPI design best practices
API design best practicesIgor Miniailo
 
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum PerformanceEugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum PerformanceMeet Magento Italy
 
Magento2.3 - GraphQL introduction
Magento2.3  - GraphQL introductionMagento2.3  - GraphQL introduction
Magento2.3 - GraphQL introductionVishakha Borkar
 
01. lab instructions starting project
01. lab instructions   starting project01. lab instructions   starting project
01. lab instructions starting projectrajul14
 
Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesAtwix
 
Backward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZBackward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZIgor Miniailo
 
API Design Best Practices by Igor Miniailo
API Design Best Practices by Igor MiniailoAPI Design Best Practices by Igor Miniailo
API Design Best Practices by Igor MiniailoMagecom UK Limited
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by dddKim Kao
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDDAmazon Web Services
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewTom Erskine
 
IRJET- Custom CMS using Smarty Template Engine for Mobile Portal
IRJET- Custom CMS using Smarty Template Engine for Mobile PortalIRJET- Custom CMS using Smarty Template Engine for Mobile Portal
IRJET- Custom CMS using Smarty Template Engine for Mobile PortalIRJET Journal
 
IBM Think 2018: IBM MQ High Availability
IBM Think 2018: IBM MQ High AvailabilityIBM Think 2018: IBM MQ High Availability
IBM Think 2018: IBM MQ High AvailabilityJamie Squibb
 

Similaire à Using Magento 2.3 MySQL Queues (20)

The long way from Monolith to Microservices
The long way from Monolith to MicroservicesThe long way from Monolith to Microservices
The long way from Monolith to Microservices
 
A long way from Monolith to Service Isolated Architecture #MM19NL
A long way from Monolith to Service Isolated Architecture #MM19NLA long way from Monolith to Service Isolated Architecture #MM19NL
A long way from Monolith to Service Isolated Architecture #MM19NL
 
Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2Backward Compatibility Developer's Guide in Magento 2
Backward Compatibility Developer's Guide in Magento 2
 
Magento 2.3 Schema and Data Patches
Magento 2.3 Schema and Data PatchesMagento 2.3 Schema and Data Patches
Magento 2.3 Schema and Data Patches
 
Backwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NLBackwards Compatibility Developers Guide. #MM17NL
Backwards Compatibility Developers Guide. #MM17NL
 
Backward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide WebinarBackward Compatibility Developer's Guide Webinar
Backward Compatibility Developer's Guide Webinar
 
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
Eugene Shakhsuvarov - Improving enterprise store scalability using AMQP and A...
 
IRJET- Development of Android Application for Device to Device Communication ...
IRJET- Development of Android Application for Device to Device Communication ...IRJET- Development of Android Application for Device to Device Communication ...
IRJET- Development of Android Application for Device to Device Communication ...
 
API design best practices
API design best practicesAPI design best practices
API design best practices
 
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum PerformanceEugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
Eugene Shaksuvarov - Tuning Magento 2 for Maximum Performance
 
Magento2.3 - GraphQL introduction
Magento2.3  - GraphQL introductionMagento2.3  - GraphQL introduction
Magento2.3 - GraphQL introduction
 
01. lab instructions starting project
01. lab instructions   starting project01. lab instructions   starting project
01. lab instructions starting project
 
Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
 
Backward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZBackward Compatibility Developer's Guide in Magento 2. #MM17CZ
Backward Compatibility Developer's Guide in Magento 2. #MM17CZ
 
API Design Best Practices by Igor Miniailo
API Design Best Practices by Igor MiniailoAPI Design Best Practices by Igor Miniailo
API Design Best Practices by Igor Miniailo
 
2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd2019 03-13-implementing microservices by ddd
2019 03-13-implementing microservices by ddd
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 
Magento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and OverviewMagento Function Testing Framework - Intro and Overview
Magento Function Testing Framework - Intro and Overview
 
IRJET- Custom CMS using Smarty Template Engine for Mobile Portal
IRJET- Custom CMS using Smarty Template Engine for Mobile PortalIRJET- Custom CMS using Smarty Template Engine for Mobile Portal
IRJET- Custom CMS using Smarty Template Engine for Mobile Portal
 
IBM Think 2018: IBM MQ High Availability
IBM Think 2018: IBM MQ High AvailabilityIBM Think 2018: IBM MQ High Availability
IBM Think 2018: IBM MQ High Availability
 

Dernier

How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stackSummit
 
Q1 Memory Fabric Forum: SMART CXL Product Lineup
Q1 Memory Fabric Forum: SMART CXL Product LineupQ1 Memory Fabric Forum: SMART CXL Product Lineup
Q1 Memory Fabric Forum: SMART CXL Product LineupMemory Fabric Forum
 
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)Memory Fabric Forum
 
H3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxH3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxMemory Fabric Forum
 
Introduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVAIntroduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVARobert McDermott
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
Q1 Memory Fabric Forum: XConn CXL Switches for AI
Q1 Memory Fabric Forum: XConn CXL Switches for AIQ1 Memory Fabric Forum: XConn CXL Switches for AI
Q1 Memory Fabric Forum: XConn CXL Switches for AIMemory Fabric Forum
 
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre..."Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...shaiyuvasv
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIEDanBrown980551
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build PolandGDSC PJATK
 
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IP
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IPQ1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IP
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IPMemory Fabric Forum
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolProduct School
 
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...Adrian Sanabria
 
Artificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfArtificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfIsidro Navarro
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?MENGSAYLOEM1
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS Chicago
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Umar Saif
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxMaarten Balliauw
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologySafe Software
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERNRonnelBaroc
 

Dernier (20)

How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stack
 
Q1 Memory Fabric Forum: SMART CXL Product Lineup
Q1 Memory Fabric Forum: SMART CXL Product LineupQ1 Memory Fabric Forum: SMART CXL Product Lineup
Q1 Memory Fabric Forum: SMART CXL Product Lineup
 
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)
Q1 Memory Fabric Forum: Intel Enabling Compute Express Link (CXL)
 
H3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptxH3 Platform CXL Solution_Memory Fabric Forum.pptx
H3 Platform CXL Solution_Memory Fabric Forum.pptx
 
Introduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVAIntroduction to Multimodal LLMs with LLaVA
Introduction to Multimodal LLMs with LLaVA
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
Q1 Memory Fabric Forum: XConn CXL Switches for AI
Q1 Memory Fabric Forum: XConn CXL Switches for AIQ1 Memory Fabric Forum: XConn CXL Switches for AI
Q1 Memory Fabric Forum: XConn CXL Switches for AI
 
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre..."Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...
"Journey of Aspiration: Unveiling the Path to Becoming a Technocrat and Entre...
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIE
 
Bit N Build Poland
Bit N Build PolandBit N Build Poland
Bit N Build Poland
 
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IP
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IPQ1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IP
Q1 Memory Fabric Forum: Building Fast and Secure Chips with CXL IP
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product School
 
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...
Early Tech Adoption: Foolish or Pragmatic? - 17th ISACA South Florida WOW Con...
 
Artificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdfArtificial-Intelligence-in-Marketing-Data.pdf
Artificial-Intelligence-in-Marketing-Data.pdf
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user group
 
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
Progress Report: Ministry of IT under Dr. Umar Saif Aug 23-Feb'24
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI Technology
 
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
21ST CENTURY LITERACY FROM TRADITIONAL TO MODERN
 

Using Magento 2.3 MySQL Queues

  • 1. © 2019 Magento, Inc. Page | 1 Magento 2.3 Using MySQL For Queues
  • 2. © 2019 Magento, Inc. . Page | 2 Senior Software Developer at BORN Group Renu Mishra
  • 3. © 2019 Magento, Inc. Page | 3 Agenda
  • 4. © 2019 Magento, Inc. Page | 4 Agenda  Need Of Queue  Introduction to Queues  Creating Queues with MySQL  Publishing messages to Queue  Consuming the published message
  • 5. © 2019 Magento, Inc. Page | 5 Not In Scope
  • 6. © 2019 Magento, Inc. Page | 6 Not In Scope  Parallel Consumer processing.  Batch Processing.  AMQP Implementation (RabbitMQ).  Advanced Error handling (Rejecting and Re-queuing).  Supervisiord for consumer monitoring.
  • 7. © 2019 Magento, Inc. Page | 7 What is Queue and it’s uses ?
  • 8. © 2019 Magento, Inc. Page | 8 What is Queue and it’s uses ?  It distribute load across the application allowing work to placed in a queue and process independently.  Received and processes the message asynchronously.  It also includes a mechanism for storing undelivered messages.  Queue works in background. It has no frontend user interaction.
  • 9. © 2019 Magento, Inc. Page | 9 Introduction Of Queue
  • 10. © 2019 Magento, Inc. Page | 10 Queue Processing Diagram Routes
  • 11. © 2019 Magento, Inc. Page | 11 Queue Processing Description  A publisher is configured to send messages to a topic. • A topic is a way to categorize messages to consumers. • A consumer is configured to listen for messages with specific topics. • Queues route topics to consumers. • Consumers accept messages and perform actions on them.
  • 12. © 2019 Magento, Inc. Page | 12 Enough Talk Let’s Get Started!
  • 13. © 2019 Magento, Inc. Page | 13 Registering The Module
  • 14. © 2019 Magento, Inc. Page | 14 <module_root>/registration.php
  • 15. © 2019 Magento, Inc. Page | 15 <module_root>/etc/module.xml
  • 16. © 2019 Magento, Inc. Page | 16 Let’s Creates the Queue Files Now
  • 17. © 2019 Magento, Inc. Page | 17 Declaring The Publisher
  • 18. © 2019 Magento, Inc. Page | 18 Send the message to broker
  • 19. © 2019 Magento, Inc. Page | 19 <module_root>/etc/publisher.xml
  • 20. © 2019 Magento, Inc. Page | 20 <module_root>/etc/publisher.xml - publisher element - topic : The name of the topic.Wildcards character are not supported. - connection element - name : For AMQP connections, the connection name must match the connection attribute in the queue_topology.xml file. Otherwise, the connection name must be db. - exchange : The name of the exchange to publish to. The default system exchange name is magento.
  • 21. © 2019 Magento, Inc. Page | 21 <module_root>/etc/communication.xml
  • 22. © 2019 Magento, Inc. Page | 22 <module_root>/etc/communication.xml - topic element - name : A string that uniquely identifies the topic.Wildcards character are not supported in the communication.xml file(*,%,[] and so on). - request : Specifies the data type of the topic. - handler element - name : A string that uniquely defines the handler. - type : The class that defines the handler. - method : The method this handler executes.
  • 23. © 2019 Magento, Inc. Page | 23 Declare The Broker
  • 24. © 2019 Magento, Inc. Page | 24 Receive the Data From Producer/Publisher
  • 25. © 2019 Magento, Inc. Page | 25 <module_root>/etc/queue.xml
  • 26. © 2019 Magento, Inc. Page | 26 <module_root>/etc/queue.xml - broker element - topic : A topic defined in the communication.xml file. - exchange : The name of the exchange to publish to. The default system exchange name is magento - type : The type of message broker. For this release, the value must be amqp or db.
  • 27. © 2019 Magento, Inc. Page | 27 <module_root>/etc/queue.xml - queue element - name : Defines the queue name to send the message to. - consumer : The name of the consumer. - consumerInstance : The path to a Magento class that consumes the message. - handler : Specifies the class and method that processes the message. The value must be specified in the format <Vendor>Module<ServiceName>::<methodName>.
  • 28. © 2019 Magento, Inc. Page | 28 Declaring The Topology
  • 29. © 2019 Magento, Inc. Page | 29 Queue route topics to consumers
  • 30. © 2019 Magento, Inc. Page | 30 <module_root>/etc/queue_topology.xml
  • 31. © 2019 Magento, Inc. Page | 31 <module_root>/etc/queue_topology.xml - exchange element - name : A unique ID for the exchange. - type : Specifies the type of exchange. Must be topic. - connection : For AMQP connections, a string that identifies the connection. For MySQL connections, the connection name must be db.
  • 32. © 2019 Magento, Inc. Page | 32 <module_root>/etc/queue_topology.xml - binding element - id : A unique ID for this binding. - topic : The name of a topic. - destinationType : Must be queue. - destination : Identifies the name of a queue.
  • 33. © 2019 Magento, Inc. Page | 33 Declaring The Consumer
  • 34. © 2019 Magento, Inc. Page | 34 Consume the publish message Routes
  • 35. © 2019 Magento, Inc. Page | 35 <module_root>/etc/queue_consumer.xml
  • 36. © 2019 Magento, Inc. Page | 36 <module_root>/etc/queue_consumer.xml - consumer element - name : The name of the consumer. - queue : Defines the queue name to send the message to. - handler : Specifies the class and method that processes the message. The value must be specified in the format <Vendor>Module<ServiceName>::<methodName>. - consumerInstance : The Magento class name that consumes the message - connection : For AMQP connections, the connection name must match the connection attribute in the queue_topology.xml file. Otherwise, the connection name must be db.
  • 37. © 2019 Magento, Inc. Page | 37 So many files right ?
  • 38. © 2019 Magento, Inc. Page | 38 Enough XMLs now its PHP time !!
  • 39. © 2019 Magento, Inc. Page | 39 Request Class Declaration
  • 40. © 2019 Magento, Inc. Page | 40 Requested Class in Communication.xml
  • 41. © 2019 Magento, Inc. Page | 41 Requested Class Interface
  • 42. © 2019 Magento, Inc. Page | 42 Concrete Class Declaration
  • 43. © 2019 Magento, Inc. Page | 43 Concrete Class declare in etc/di.xml
  • 44. © 2019 Magento, Inc. Page | 44 Concrete Class Implementation
  • 45. © 2019 Magento, Inc. Page | 45 Publishing The Message
  • 46. © 2019 Magento, Inc. Page | 46 Publish The Message in Controller
  • 47. © 2019 Magento, Inc. Page | 47 MagentoFrameworkMessageQueuePu blisherInterface
  • 48. © 2019 Magento, Inc. Page | 48 Publish The Message in Controller
  • 49. © 2019 Magento, Inc. Page | 49 Consume The Message
  • 50. © 2019 Magento, Inc. Page | 50 Consume The Message
  • 51. © 2019 Magento, Inc. Page | 51 Finally Code Implementation Done !!!
  • 52. © 2019 Magento, Inc. Page | 52 Execute The Queue
  • 53. © 2019 Magento, Inc. Page | 53 Wait we need to run the command before executing the Queue
  • 54. © 2019 Magento, Inc. Page | 54 Upgrade Command Install the Queue Module
  • 55. © 2019 Magento, Inc. Page | 55 What is happening in background when command executed ?
  • 56. © 2019 Magento, Inc. Page | 56 Queue Table
  • 57. © 2019 Magento, Inc. Page | 57 Now Let’s Publish the Queue using Controller
  • 58. © 2019 Magento, Inc. Page | 58 [base_url]/queue1/index/index
  • 59. © 2019 Magento, Inc. Page | 59 What happen in background when queue published?
  • 60. © 2019 Magento, Inc. Page | 60 queue_message Table
  • 61. © 2019 Magento, Inc. Page | 61 It’s time to consume the published message
  • 62. © 2019 Magento, Inc. Page | 62 View a list of available message queue consumers
  • 63. © 2019 Magento, Inc. Page | 63 View a list of available message queue consumers
  • 64. © 2019 Magento, Inc. Page | 64 Command that consume the message
  • 65. © 2019 Magento, Inc. Page | 65 Consume the message
  • 66. © 2019 Magento, Inc. Page | 66 What happen when consumer start processing ?
  • 67. © 2019 Magento, Inc. Page | 67 queue_message_status table
  • 68. © 2019 Magento, Inc. Page | 68 queue_message_status table
  • 69. © 2019 Magento, Inc. Page | 69 status column in queue_message_status table
  • 70. © 2019 Magento, Inc. Page | 70 Queue Execution On Production
  • 71. © 2019 Magento, Inc. Page | 71 MySQL Message Queue Setting Stores > Settings > Configuration > Advanced > System > Cron
  • 72. © 2019 Magento, Inc. Page | 72 Configure cron job consumer_runner in app/etc/env.php
  • 73. © 2019 Magento, Inc. Page | 73  cron_run - the option for enabling/disabling cron job consumers_runner, by default is true.  max_messages - the maximum number of messages for each consumer that must be processed before consumer terminate, by default is 1000. If it is 0, then the consumer never stops working.  consumers - the list of consumers which will be run, by default is empty array (all consumers are allowed to be run). consumer_runner parameter Details
  • 74. © 2019 Magento, Inc. Page | 74 Start message queue consumers
  • 75. © 2019 Magento, Inc. Page | 75 Start message queue consumers
  • 76. © 2019 Magento, Inc. Page | 76 Now you know pretty well about Queue
  • 77. © 2019 Magento, Inc. Page | 77 Questions ?
  • 78. © 2019 Magento, Inc. Page | 78 Thank You