SlideShare a Scribd company logo
1 of 17
Download to read offline
Delayed operations
with queues
Yuriy Gerasimov
Frédéric G. Marand
Yuriy Gerasimov
ygerasimov
• FFW
• Drupal architect & developer
• Contrib 7 modules: services,
draggableviews
• Founder at Backtrac.io
Frédéric G. Marand
fgm
• OSInet: performance/architecture
consulting
• for internal teams at larger accounts
• Core contributor 4.7 to 8.0.x,
MongoDB + XMLRPC maintainer +
others
• Already 4 D8 customer projects
before 8.0.0
• Customer D8 in production since
07/2015
• Frequently adds queueing to larger
Drupal projects
Why use queues ?
To have websites which are :
• Faster for visitors
• Snappier for editors
• More scaleable
To process time-consuming jobs :
• Video encoding
• High-resolution gallery uploads and processing
Concrete use cases
• Prepare content for non-Drupal front-ends
• Anticipate content generation
• Deferred submits, e.g. comments handling
• Slow operations: node saves, previews, image
processing
• External data sources: pull, push
• Multi-step operations: batch
Cooking for front-ends
Anticipated content
generation
Comment handling
“Pull” data sources
(aggregator)
“Push” data sources
Image processing
Job servers
• How to get results
• Rerun failed jobs
• Separate queue for failed jobs
• Monitoring queues, workers
• Supervisor
Some implementations
Queue API methods: Queue
QueueInterface
• Q::createItem(mixed $data: void
• Q::claimItem($lease_time = 3600: mixed $item
FALSE | stdClass + [item_id => int, data => mixed, created => timestamp]
$lease_time → Assumptions for runner, currently not used
• Q::deleteItem($item): void -> work done
• Q::releaseItem($item): bool
• Q::numberOfItems(): int → best guess, unreliable
• Q::createQueue() / Q::deleteQueue()
ReliableQueueInterface: ordering, single execution
Queue Runners
Core / Contrib
• Core Cron / Elysia Cron / Queue_Runner
• Drush: queue-list / queue-run
Similar limitations:
• Default on in D6 / D7, default off in D8
• Single threaded, single process across queues
Custom runners
• Provided by queue modules or per-project one-offs
• Preemption, parallel execution...
Queue API limitations
• Exception handling
• Priority management
• Tagging
• Delay, burying ...
• No monitoring, peek(), deduplication
Questions ?

More Related Content

What's hot

Multisite Implementation Within Nonprofit Organization by Wigid Triyadi
Multisite Implementation Within Nonprofit Organization by Wigid TriyadiMultisite Implementation Within Nonprofit Organization by Wigid Triyadi
Multisite Implementation Within Nonprofit Organization by Wigid TriyadiWordCamp Indonesia
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...Waldek Mastykarz
 
Unicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingUnicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingJohn Gasper
 
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminis
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminise-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminis
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminismfrancis
 
Enterprise Web Development
Enterprise Web DevelopmentEnterprise Web Development
Enterprise Web DevelopmentLorna Mitchell
 
Asset Management and Drupal
Asset Management and DrupalAsset Management and Drupal
Asset Management and DrupalChris Flink
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introductionAditya Ghan
 
Pavel Prischepa. Fffast Drupal backend.
Pavel Prischepa. Fffast Drupal backend.Pavel Prischepa. Fffast Drupal backend.
Pavel Prischepa. Fffast Drupal backend.DrupalSib
 
WDC lntroduction
WDC lntroductionWDC lntroduction
WDC lntroductionChia-An Lee
 
How to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefHow to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefBizTalk360
 
Uniface 10 Now is the time by David Akerman
Uniface 10 Now is the time by David AkermanUniface 10 Now is the time by David Akerman
Uniface 10 Now is the time by David AkermanUniface
 
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015Rania Marou
 
Week6 office-hours
Week6 office-hoursWeek6 office-hours
Week6 office-hoursRandall Rode
 
TYPO3 and t3kit overview
TYPO3 and t3kit overviewTYPO3 and t3kit overview
TYPO3 and t3kit overviewJozef Spisiak
 

What's hot (19)

Multisite Implementation Within Nonprofit Organization by Wigid Triyadi
Multisite Implementation Within Nonprofit Organization by Wigid TriyadiMultisite Implementation Within Nonprofit Organization by Wigid Triyadi
Multisite Implementation Within Nonprofit Organization by Wigid Triyadi
 
GraphDb in XPages
GraphDb in XPagesGraphDb in XPages
GraphDb in XPages
 
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
 
Unicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingUnicon June 2014 IAM Briefing
Unicon June 2014 IAM Briefing
 
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminis
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminise-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminis
e-Business and Enterprise-grade Content Management - Hans Bossenbroek, Luminis
 
Enterprise Web Development
Enterprise Web DevelopmentEnterprise Web Development
Enterprise Web Development
 
Asset Management and Drupal
Asset Management and DrupalAsset Management and Drupal
Asset Management and Drupal
 
Drupal 8 introduction
Drupal 8 introductionDrupal 8 introduction
Drupal 8 introduction
 
Pavel Prischepa. Fffast Drupal backend.
Pavel Prischepa. Fffast Drupal backend.Pavel Prischepa. Fffast Drupal backend.
Pavel Prischepa. Fffast Drupal backend.
 
nodeconf-eu
nodeconf-eunodeconf-eu
nodeconf-eu
 
WDC lntroduction
WDC lntroductionWDC lntroduction
WDC lntroduction
 
JAMstack
JAMstackJAMstack
JAMstack
 
Yace 3.0
Yace 3.0Yace 3.0
Yace 3.0
 
How to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with ChefHow to automate your BizTalk Installations and Deployments with Chef
How to automate your BizTalk Installations and Deployments with Chef
 
Lightswitch
LightswitchLightswitch
Lightswitch
 
Uniface 10 Now is the time by David Akerman
Uniface 10 Now is the time by David AkermanUniface 10 Now is the time by David Akerman
Uniface 10 Now is the time by David Akerman
 
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015
TYPO3 - The Enterprise Open Source CMS - Rania Marou - FOSSCOMM 2015
 
Week6 office-hours
Week6 office-hoursWeek6 office-hours
Week6 office-hours
 
TYPO3 and t3kit overview
TYPO3 and t3kit overviewTYPO3 and t3kit overview
TYPO3 and t3kit overview
 

Viewers also liked

Gastcollege > Jongeren & social media > Universiteit Twente
Gastcollege > Jongeren & social media > Universiteit TwenteGastcollege > Jongeren & social media > Universiteit Twente
Gastcollege > Jongeren & social media > Universiteit TwenteEls Dragt
 
DrupalCafe4 Kiev Services
DrupalCafe4 Kiev ServicesDrupalCafe4 Kiev Services
DrupalCafe4 Kiev ServicesYuriy Gerasimov
 
DrupalCamp Kyiv 2011 Services
DrupalCamp Kyiv 2011 ServicesDrupalCamp Kyiv 2011 Services
DrupalCamp Kyiv 2011 ServicesYuriy Gerasimov
 
Pha thai
Pha thaiPha thai
Pha thaiHuong
 
4 h center program staff risk management policies & procedures
4 h center program staff risk management policies & procedures4 h center program staff risk management policies & procedures
4 h center program staff risk management policies & proceduresWin
 
DrupalCafe7 CTools AJAX responder
DrupalCafe7 CTools AJAX responderDrupalCafe7 CTools AJAX responder
DrupalCafe7 CTools AJAX responderYuriy Gerasimov
 
Drupal camp donetsk c tools
Drupal camp donetsk c toolsDrupal camp donetsk c tools
Drupal camp donetsk c toolsYuriy Gerasimov
 
Pepe simeu rimini 2008 atrial fibrillation
Pepe simeu rimini 2008 atrial fibrillationPepe simeu rimini 2008 atrial fibrillation
Pepe simeu rimini 2008 atrial fibrillationEmergenza Urgenza
 
5 in1869 c agility 3 im en web
5 in1869 c  agility 3 im en web5 in1869 c  agility 3 im en web
5 in1869 c agility 3 im en webcemento chimborazo
 
Apache SOLR | Drupal Camp Kyiv 2010
Apache SOLR | Drupal Camp Kyiv 2010Apache SOLR | Drupal Camp Kyiv 2010
Apache SOLR | Drupal Camp Kyiv 2010Yuriy Gerasimov
 
Workshop > generatie zap of generatie gezond?
Workshop > generatie zap of generatie gezond?Workshop > generatie zap of generatie gezond?
Workshop > generatie zap of generatie gezond?Els Dragt
 
Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011Yuriy Gerasimov
 

Viewers also liked (20)

Gastcollege > Jongeren & social media > Universiteit Twente
Gastcollege > Jongeren & social media > Universiteit TwenteGastcollege > Jongeren & social media > Universiteit Twente
Gastcollege > Jongeren & social media > Universiteit Twente
 
Qasper - BIABC regional presentation
Qasper - BIABC regional presentationQasper - BIABC regional presentation
Qasper - BIABC regional presentation
 
Catalogo camp 7
Catalogo camp 7Catalogo camp 7
Catalogo camp 7
 
DrupalCafe4 Kiev Services
DrupalCafe4 Kiev ServicesDrupalCafe4 Kiev Services
DrupalCafe4 Kiev Services
 
DrupalCafe5 VCS
DrupalCafe5 VCSDrupalCafe5 VCS
DrupalCafe5 VCS
 
Catalogo camp 10
Catalogo camp 10Catalogo camp 10
Catalogo camp 10
 
DrupalCamp Kyiv 2011 Services
DrupalCamp Kyiv 2011 ServicesDrupalCamp Kyiv 2011 Services
DrupalCamp Kyiv 2011 Services
 
Pha thai
Pha thaiPha thai
Pha thai
 
Commercial
CommercialCommercial
Commercial
 
4 h center program staff risk management policies & procedures
4 h center program staff risk management policies & procedures4 h center program staff risk management policies & procedures
4 h center program staff risk management policies & procedures
 
Catalogo camp 8
Catalogo camp 8Catalogo camp 8
Catalogo camp 8
 
Cmm Myself
Cmm MyselfCmm Myself
Cmm Myself
 
DrupalCafe7 CTools AJAX responder
DrupalCafe7 CTools AJAX responderDrupalCafe7 CTools AJAX responder
DrupalCafe7 CTools AJAX responder
 
Drupal camp donetsk c tools
Drupal camp donetsk c toolsDrupal camp donetsk c tools
Drupal camp donetsk c tools
 
Pepe simeu rimini 2008 atrial fibrillation
Pepe simeu rimini 2008 atrial fibrillationPepe simeu rimini 2008 atrial fibrillation
Pepe simeu rimini 2008 atrial fibrillation
 
Services Stanford 2012
Services Stanford 2012Services Stanford 2012
Services Stanford 2012
 
5 in1869 c agility 3 im en web
5 in1869 c  agility 3 im en web5 in1869 c  agility 3 im en web
5 in1869 c agility 3 im en web
 
Apache SOLR | Drupal Camp Kyiv 2010
Apache SOLR | Drupal Camp Kyiv 2010Apache SOLR | Drupal Camp Kyiv 2010
Apache SOLR | Drupal Camp Kyiv 2010
 
Workshop > generatie zap of generatie gezond?
Workshop > generatie zap of generatie gezond?Workshop > generatie zap of generatie gezond?
Workshop > generatie zap of generatie gezond?
 
Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011Automated ui testing with selenium. drupal con london 2011
Automated ui testing with selenium. drupal con london 2011
 

Similar to Manage operations with queues in Drupal

Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Ruby in office time reboot
Ruby in office time rebootRuby in office time reboot
Ruby in office time rebootKentaro Goto
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?DrupalCamp Kyiv
 
Delayed operations with queues for website performance
Delayed operations with queues for website performanceDelayed operations with queues for website performance
Delayed operations with queues for website performanceOSInet
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaKunal Dabir
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document DsplayChris Despopoulos
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Steve Kessler
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue APIOSInet
 
2012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v42012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v4Andy Kucharski
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week UpdateAngela Byron
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation PortalSteve Anderson
 
Capstone presentation
Capstone presentationCapstone presentation
Capstone presentationVikal Gupta
 
Big Data Ingestion Using Hadoop - Capstone Presentation
Big Data Ingestion Using Hadoop - Capstone PresentationBig Data Ingestion Using Hadoop - Capstone Presentation
Big Data Ingestion Using Hadoop - Capstone PresentationSamkannan
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentDave Ward
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 

Similar to Manage operations with queues in Drupal (20)

Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Ruby in office time reboot
Ruby in office time rebootRuby in office time reboot
Ruby in office time reboot
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Delayed operations with queues for website performance
Delayed operations with queues for website performanceDelayed operations with queues for website performance
Delayed operations with queues for website performance
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
sponge-tech
sponge-techsponge-tech
sponge-tech
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for Java
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay4D Pubs - Distributed Dynamic Document Dsplay
4D Pubs - Distributed Dynamic Document Dsplay
 
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue API
 
2012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v42012 bad camp-project management tools and organization-v4
2012 bad camp-project management tools and organization-v4
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week Update
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
 
Capstone presentation
Capstone presentationCapstone presentation
Capstone presentation
 
Big Data Ingestion Using Hadoop - Capstone Presentation
Big Data Ingestion Using Hadoop - Capstone PresentationBig Data Ingestion Using Hadoop - Capstone Presentation
Big Data Ingestion Using Hadoop - Capstone Presentation
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
Preparing your dockerised application for production deployment
Preparing your dockerised application for production deploymentPreparing your dockerised application for production deployment
Preparing your dockerised application for production deployment
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 

More from Yuriy Gerasimov

Progressing to Team Lead
Progressing to Team LeadProgressing to Team Lead
Progressing to Team LeadYuriy Gerasimov
 
What kind testing DUG Vancouver
What kind testing DUG VancouverWhat kind testing DUG Vancouver
What kind testing DUG VancouverYuriy Gerasimov
 
Editor Experience in Drupal 8
Editor Experience in Drupal 8Editor Experience in Drupal 8
Editor Experience in Drupal 8Yuriy Gerasimov
 
Load Testing with JMeter
Load Testing with JMeterLoad Testing with JMeter
Load Testing with JMeterYuriy Gerasimov
 
Ci. Drupal Camp Berlin 2014
Ci. Drupal Camp Berlin 2014Ci. Drupal Camp Berlin 2014
Ci. Drupal Camp Berlin 2014Yuriy Gerasimov
 
Inline elements. DrupalCamp Berlin 2014
Inline elements. DrupalCamp Berlin 2014Inline elements. DrupalCamp Berlin 2014
Inline elements. DrupalCamp Berlin 2014Yuriy Gerasimov
 
CI and other tools for feature branch development
CI and other tools for feature branch developmentCI and other tools for feature branch development
CI and other tools for feature branch developmentYuriy Gerasimov
 
Clean code and refactoring
Clean code and refactoringClean code and refactoring
Clean code and refactoringYuriy Gerasimov
 
DrupalCafe Kyiv EntityAPI
DrupalCafe Kyiv EntityAPIDrupalCafe Kyiv EntityAPI
DrupalCafe Kyiv EntityAPIYuriy Gerasimov
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Yuriy Gerasimov
 
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with SeleniumYuriy Gerasimov
 
Code Driven Development Zaporozhye DrupalForum
Code Driven Development Zaporozhye DrupalForumCode Driven Development Zaporozhye DrupalForum
Code Driven Development Zaporozhye DrupalForumYuriy Gerasimov
 

More from Yuriy Gerasimov (16)

Progressing to Team Lead
Progressing to Team LeadProgressing to Team Lead
Progressing to Team Lead
 
What kind testing DUG Vancouver
What kind testing DUG VancouverWhat kind testing DUG Vancouver
What kind testing DUG Vancouver
 
Editor Experience in Drupal 8
Editor Experience in Drupal 8Editor Experience in Drupal 8
Editor Experience in Drupal 8
 
Load Testing with JMeter
Load Testing with JMeterLoad Testing with JMeter
Load Testing with JMeter
 
Ci. Drupal Camp Berlin 2014
Ci. Drupal Camp Berlin 2014Ci. Drupal Camp Berlin 2014
Ci. Drupal Camp Berlin 2014
 
Inline elements. DrupalCamp Berlin 2014
Inline elements. DrupalCamp Berlin 2014Inline elements. DrupalCamp Berlin 2014
Inline elements. DrupalCamp Berlin 2014
 
CI and other tools for feature branch development
CI and other tools for feature branch developmentCI and other tools for feature branch development
CI and other tools for feature branch development
 
Drupal 8 Routing
Drupal 8 RoutingDrupal 8 Routing
Drupal 8 Routing
 
Clean code and refactoring
Clean code and refactoringClean code and refactoring
Clean code and refactoring
 
BADCamp 2012 Facet API
BADCamp 2012 Facet APIBADCamp 2012 Facet API
BADCamp 2012 Facet API
 
DrupalCafe Kyiv EntityAPI
DrupalCafe Kyiv EntityAPIDrupalCafe Kyiv EntityAPI
DrupalCafe Kyiv EntityAPI
 
DrupalCafe Kyiv CTools
DrupalCafe Kyiv CToolsDrupalCafe Kyiv CTools
DrupalCafe Kyiv CTools
 
DrupalCafe Kyiv drupal8
DrupalCafe Kyiv drupal8DrupalCafe Kyiv drupal8
DrupalCafe Kyiv drupal8
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
 
Automated UI testing with Selenium
Automated UI testing with SeleniumAutomated UI testing with Selenium
Automated UI testing with Selenium
 
Code Driven Development Zaporozhye DrupalForum
Code Driven Development Zaporozhye DrupalForumCode Driven Development Zaporozhye DrupalForum
Code Driven Development Zaporozhye DrupalForum
 

Recently uploaded

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Manage operations with queues in Drupal

  • 1. Delayed operations with queues Yuriy Gerasimov Frédéric G. Marand
  • 2. Yuriy Gerasimov ygerasimov • FFW • Drupal architect & developer • Contrib 7 modules: services, draggableviews • Founder at Backtrac.io
  • 3. Frédéric G. Marand fgm • OSInet: performance/architecture consulting • for internal teams at larger accounts • Core contributor 4.7 to 8.0.x, MongoDB + XMLRPC maintainer + others • Already 4 D8 customer projects before 8.0.0 • Customer D8 in production since 07/2015 • Frequently adds queueing to larger Drupal projects
  • 4. Why use queues ? To have websites which are : • Faster for visitors • Snappier for editors • More scaleable To process time-consuming jobs : • Video encoding • High-resolution gallery uploads and processing
  • 5. Concrete use cases • Prepare content for non-Drupal front-ends • Anticipate content generation • Deferred submits, e.g. comments handling • Slow operations: node saves, previews, image processing • External data sources: pull, push • Multi-step operations: batch
  • 12. Job servers • How to get results • Rerun failed jobs • Separate queue for failed jobs • Monitoring queues, workers • Supervisor
  • 14. Queue API methods: Queue QueueInterface • Q::createItem(mixed $data: void • Q::claimItem($lease_time = 3600: mixed $item FALSE | stdClass + [item_id => int, data => mixed, created => timestamp] $lease_time → Assumptions for runner, currently not used • Q::deleteItem($item): void -> work done • Q::releaseItem($item): bool • Q::numberOfItems(): int → best guess, unreliable • Q::createQueue() / Q::deleteQueue() ReliableQueueInterface: ordering, single execution
  • 15. Queue Runners Core / Contrib • Core Cron / Elysia Cron / Queue_Runner • Drush: queue-list / queue-run Similar limitations: • Default on in D6 / D7, default off in D8 • Single threaded, single process across queues Custom runners • Provided by queue modules or per-project one-offs • Preemption, parallel execution...
  • 16. Queue API limitations • Exception handling • Priority management • Tagging • Delay, burying ... • No monitoring, peek(), deduplication