SlideShare a Scribd company logo
Jesque In Action
gperf framework
Why?

Easy Job Configuration
Low Latency
Redis is Fast
    Cache
    NoSQL
    Queue
And...
Phase 2: Redis & Jesque
And...
Phase 2: Redis & Jesque
Creating Jobs
perf {
    runners {
        largeNumberPerformanceRunner {
            description = 'Large Number Performance Test'
            maxWorkers = 20
            workerClass = com.perf.runners.math.LargeNumberPerformanceService
        }
    }
}



class LargeNumberPerformanceService extends AbstractPerformanceService {
    Result performTest() {
        Long result = 1
        def executionTime = benchmark {
            100000.times {
                result += it
            }
        }
        new SimpleResult(testName: 'Long Number Performance Service', executionTime: executionTime)
    }
}
The Jesque Job	
class PerformanceRunnerJob {


    GrailsApplication grailsApplication
    RedisService redisService
    ResultsService resultsService
    def executorService


    def perform(jobName, workers) {
        println "jesque queueing up job ${jobName} with ${workers} threads"
        Class clazz = grailsApplication.config?.perf?.runners[jobName]?.workerClass
        if(!clazz) {
            log.error "Can not start a performance worker without a workerClass defined in the config attribute"
        }
        PerformanceService service = (PerformanceService) grailsApplication.mainContext.getBean(clazz)
        Integer.parseInt(workers).times {
            runAsync {
                println "running ${jobName} on thread :: ${Thread.currentThread().id}"
                while(redisService.get(jobName) == PerformanceConstants.RUNNING) {
                     saveResults(jobName, service.performTest())
                }
            }
        }
    }


    private void saveResults(String jobName, Result result) {
        log.debug result
        resultsService.saveResults(jobName, result)
    }
}
Performance Distributed
              Grails Web

 Grails   Grails           Grails   Grails

 Jesque   Jesque           Jesque   Jesque




                   Redis
Performance Distributed
              Grails Web

 Grails   Grails           Grails   Grails

 Jesque   Jesque           Jesque   Jesque




                   Redis
Sequence Diagram
Dashboards!
Dashboards!
Demo

Twitter: @ctoestreich
Blog: http://www.christianoestreich.com
GPerf: http://bit.ly/zBHd6b
Github: https://www.github.com/ctoestreich

More Related Content

What's hot (20)

PDF
Scaling up task processing with Celery
Nicolas Grasset
 
PDF
Tdc 2013 - Ecossistema Ruby
Fabio Akita
 
PDF
Infrastructure = code - 1 year later
Christian Ortner
 
PDF
Celery
Fatih Erikli
 
PDF
Trying Continuous Delivery - pyconjp 2012
Toru Furukawa
 
PDF
Celery for internal API in SOA infrastructure
Roman Imankulov
 
PDF
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
PDF
Celery: The Distributed Task Queue
Richard Leland
 
PDF
Celery with python
Alexandre González Rodríguez
 
PDF
V2 and beyond
jimi-c
 
PDF
Capistrano 2 Rocks My World
Graeme Mathieson
 
ODP
Introduction to Python Celery
Mahendra M
 
PDF
Cachopo - Scalable Stateful Services - Madrid Elixir Meetup
Abel Muíño
 
PDF
kRouter
Kelp Chen
 
PDF
The Puppet Master on the JVM - PuppetConf 2014
Puppet
 
PPTX
Toolbox of a Ruby Team
Arto Artnik
 
PDF
Designing net-aws-glacier
Workhorse Computing
 
PDF
Data processing with celery and rabbit mq
Jeff Peck
 
PPTX
Asynchronous Task Queues with Celery
Kishor Kumar
 
PPT
Async programming on NET
yuyijq
 
Scaling up task processing with Celery
Nicolas Grasset
 
Tdc 2013 - Ecossistema Ruby
Fabio Akita
 
Infrastructure = code - 1 year later
Christian Ortner
 
Celery
Fatih Erikli
 
Trying Continuous Delivery - pyconjp 2012
Toru Furukawa
 
Celery for internal API in SOA infrastructure
Roman Imankulov
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Puppet
 
Celery: The Distributed Task Queue
Richard Leland
 
Celery with python
Alexandre González Rodríguez
 
V2 and beyond
jimi-c
 
Capistrano 2 Rocks My World
Graeme Mathieson
 
Introduction to Python Celery
Mahendra M
 
Cachopo - Scalable Stateful Services - Madrid Elixir Meetup
Abel Muíño
 
kRouter
Kelp Chen
 
The Puppet Master on the JVM - PuppetConf 2014
Puppet
 
Toolbox of a Ruby Team
Arto Artnik
 
Designing net-aws-glacier
Workhorse Computing
 
Data processing with celery and rabbit mq
Jeff Peck
 
Asynchronous Task Queues with Celery
Kishor Kumar
 
Async programming on NET
yuyijq
 

Viewers also liked (20)

PPTX
Yurisprudensi
siiGuccie
 
PDF
план конспект
savlex
 
PDF
What would hhappen if payday loans are outlawed
CashOne
 
KEY
Fågeldag
tinzet
 
PDF
Colonial historynotespart2
analine_123
 
KEY
Vecka 47
tinzet
 
PPTX
現代と酷似する 世界恐慌の時代と 帰結としての世界大戦 ①世界恐慌とその反省 ClassOnCloud
Class On Cloud -
 
PPTX
Raising (funds) athletes
Towa Beer
 
PDF
Reglamento financiero
Mfx broker Forex
 
PPTX
Ed Min Week 7
Rick Cramer
 
PDF
Mymentorsaid public deck_tb
Towa Beer
 
KEY
Snogeholm
tinzet
 
PPTX
私塾・義塾の時代 -内田樹blog;「学校教育の終わり」- Class On Cloud
Class On Cloud -
 
PDF
Рекомендации
savlex
 
ZIP
Методработа Крюкова
savlex
 
KEY
Skogen
tinzet
 
PPTX
Handboek ICT EventsIT
EventsIT_Ticketing
 
PDF
<legend> presentation
Alexander_2012
 
KEY
Vinkelläxa
tinzet
 
PDF
'12 夏期 経済学セクション グローバル化恐慌の真相 資料
Class On Cloud -
 
Yurisprudensi
siiGuccie
 
план конспект
savlex
 
What would hhappen if payday loans are outlawed
CashOne
 
Fågeldag
tinzet
 
Colonial historynotespart2
analine_123
 
Vecka 47
tinzet
 
現代と酷似する 世界恐慌の時代と 帰結としての世界大戦 ①世界恐慌とその反省 ClassOnCloud
Class On Cloud -
 
Raising (funds) athletes
Towa Beer
 
Reglamento financiero
Mfx broker Forex
 
Ed Min Week 7
Rick Cramer
 
Mymentorsaid public deck_tb
Towa Beer
 
Snogeholm
tinzet
 
私塾・義塾の時代 -内田樹blog;「学校教育の終わり」- Class On Cloud
Class On Cloud -
 
Рекомендации
savlex
 
Методработа Крюкова
savlex
 
Skogen
tinzet
 
Handboek ICT EventsIT
EventsIT_Ticketing
 
<legend> presentation
Alexander_2012
 
Vinkelläxa
tinzet
 
'12 夏期 経済学セクション グローバル化恐慌の真相 資料
Class On Cloud -
 
Ad

Similar to GPerf Using Jesque (9)

PPTX
Grails transactions
Husain Dalal
 
PDF
[Test bash manchester] contract testing in practice
Pierre Vincent
 
PDF
Lightbend Lagom: Microservices Just Right
mircodotta
 
PDF
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax
 
PDF
Effective Testing in DSE
pedjak
 
PDF
[Test bash NL] Contract testing in practice with Pact
Pierre Vincent
 
PDF
Lightbend Lagom: Microservices Just Right (Scala Days 2016 Berlin)
mircodotta
 
PPTX
Performance tuning Grails Applications GR8Conf US 2014
Lari Hotari
 
PDF
Spark Summit 2014: Spark Job Server Talk
Evan Chan
 
Grails transactions
Husain Dalal
 
[Test bash manchester] contract testing in practice
Pierre Vincent
 
Lightbend Lagom: Microservices Just Right
mircodotta
 
DataStax | Effective Testing in DSE (Lessons Learned) (Predrag Knezevic) | Ca...
DataStax
 
Effective Testing in DSE
pedjak
 
[Test bash NL] Contract testing in practice with Pact
Pierre Vincent
 
Lightbend Lagom: Microservices Just Right (Scala Days 2016 Berlin)
mircodotta
 
Performance tuning Grails Applications GR8Conf US 2014
Lari Hotari
 
Spark Summit 2014: Spark Job Server Talk
Evan Chan
 
Ad

Recently uploaded (20)

PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 

GPerf Using Jesque

  • 2. Why? Easy Job Configuration Low Latency Redis is Fast Cache NoSQL Queue
  • 5. Creating Jobs perf { runners { largeNumberPerformanceRunner { description = 'Large Number Performance Test' maxWorkers = 20 workerClass = com.perf.runners.math.LargeNumberPerformanceService } } } class LargeNumberPerformanceService extends AbstractPerformanceService { Result performTest() { Long result = 1 def executionTime = benchmark { 100000.times { result += it } } new SimpleResult(testName: 'Long Number Performance Service', executionTime: executionTime) } }
  • 6. The Jesque Job class PerformanceRunnerJob { GrailsApplication grailsApplication RedisService redisService ResultsService resultsService def executorService def perform(jobName, workers) { println "jesque queueing up job ${jobName} with ${workers} threads" Class clazz = grailsApplication.config?.perf?.runners[jobName]?.workerClass if(!clazz) { log.error "Can not start a performance worker without a workerClass defined in the config attribute" } PerformanceService service = (PerformanceService) grailsApplication.mainContext.getBean(clazz) Integer.parseInt(workers).times { runAsync { println "running ${jobName} on thread :: ${Thread.currentThread().id}" while(redisService.get(jobName) == PerformanceConstants.RUNNING) { saveResults(jobName, service.performTest()) } } } } private void saveResults(String jobName, Result result) { log.debug result resultsService.saveResults(jobName, result) } }
  • 7. Performance Distributed Grails Web Grails Grails Grails Grails Jesque Jesque Jesque Jesque Redis
  • 8. Performance Distributed Grails Web Grails Grails Grails Grails Jesque Jesque Jesque Jesque Redis
  • 12. Demo Twitter: @ctoestreich Blog: http://www.christianoestreich.com GPerf: http://bit.ly/zBHd6b Github: https://www.github.com/ctoestreich

Editor's Notes