SlideShare a Scribd company logo
¡ActionHero al rescate!
ActionHeroJS Talk
Estructura del Proyecto
.
├── actions
├── bin
├── config
├── initializers
├── locales
├── log
├── node_modules
├── package.json
├── pids
├── public
├── README.md
├── servers
├── tasks
└── test
Las entidades principales como acciones, inicializadores o tareas se pueden generar
usando el comando de actionhero
npm run actionhero generate action -- --name=myFirstAction
HTTP
WebSockets
TCP
ActionHeroJS Talk
'use strict'
// npm run actionhero generate action -- --name=myFirstAction
exports.action = {
name: 'myFirstAction',
description: 'an actionhero action',
blockedConnectionTypes: [],
outputExample: {},
matchExtensionMimeType: false,
version: 1.0,
toDocument: true,
middleware: [],
inputs: {},
run: function (api, data, next) {
let error = null
// your logic here
return next(error)
}
}
Acciones
data = {
connection: connection,
action: 'randomNumber',
toProcess: true,
toRender: true,
messageCount: 123,
params: {
action: 'randomNumber',
apiVersion: 1
},
actionStartTime: 123,
response: {},
}
ActionHeroJS Talk
'use strict'
// npm run actionhero generate task -- 
// --name=myFirstTask --queue=default --frequency=0
exports.task = {
name: 'myFirstTask',
description: 'an actionhero task',
frequency: 0,
queue: 'default',
middleware: [],
plugins: [],
run: function (api, params, next) {
// your logic here
// let error = new Error('something has gone wrong')
// let resultLogMessage = {taskResult: 'ok'}
// next(error, resultLogMessage)
return next()
}
}
Tareas
'use strict'
// npm run actionhero generate initializer -- --name=myFirstInitializer
module.exports = {
loadPriority: 1000,
startPriority: 1000,
stopPriority: 1000,
initialize: function (api, next) {
api.myFirstInitializer = {}
return next()
},
start: function (api, next) {
return next()
},
stop: function (api, next) {
return next()
}
}
Inicializadores
Action Cluster
● Cache
○ Get/Set
○ Listas
○ Bloqueos
● RPC
● Conexiones
● Pub/Sub
api.connections.apply('abc123', 'set', ['auth', true],
function(error, connectionDetails){
// do stuff
});

More Related Content

PDF
Puppet Camp 2012
Server Density
 
KEY
Ajax - a quick introduction
Stefan Pettersson
 
PPT
Владимир Мигуро "Дао Node.js"
EPAM Systems
 
PDF
Asynchronous PHP and Real-time Messaging
Steve Rhoades
 
PDF
Asynchronous programming patterns in Perl
deepfountainconsulting
 
PDF
Any event intro
qiang
 
PDF
Asynchronous Programming FTW! 2 (with AnyEvent)
xSawyer
 
PDF
More than syntax
Wooga
 
Puppet Camp 2012
Server Density
 
Ajax - a quick introduction
Stefan Pettersson
 
Владимир Мигуро "Дао Node.js"
EPAM Systems
 
Asynchronous PHP and Real-time Messaging
Steve Rhoades
 
Asynchronous programming patterns in Perl
deepfountainconsulting
 
Any event intro
qiang
 
Asynchronous Programming FTW! 2 (with AnyEvent)
xSawyer
 
More than syntax
Wooga
 

What's hot (20)

PDF
Monitoring with Syslog and EventMachine (RailswayConf 2012)
Wooga
 
PPTX
Boot strap.groovy
Vijay Shukla
 
PDF
A Gentle Introduction to Event Loops
deepfountainconsulting
 
PPTX
Caching and invalidating with managed store
irfan1008
 
ODP
Anyevent
Marian Marinov
 
PDF
Puppet Camp Ghent 2013
Server Density
 
PDF
わかった気になるgitit-0.8
Kiwamu Okabe
 
PDF
clara-rules
Ikuru Kanuma
 
PDF
Javascript Continues Integration in Jenkins with AngularJS
Ladislav Prskavec
 
PDF
livedoor blogのsorryサーバの話 #study2study
SATOSHI TAGOMORI
 
PPTX
Perl: Coro asynchronous
Shmuel Fomberg
 
KEY
Offline Application Cache
Jonathan Stark
 
KEY
Study2study#4 nginx conf_1_24
Naoya Nakazawa
 
PPT
Assurer - a pluggable server testing/monitoring framework
Gosuke Miyashita
 
PDF
톰캣 #04-환경설정
GyuSeok Lee
 
KEY
Time tested php with libtimemachine
Nick Galbreath
 
PDF
SambaStatus a "Do it yourself" module for NethServer
NethServer
 
PDF
Debugging in Clojure: Finding Light in the Darkness using Emacs and Cursive
Ahmad Ragab
 
ODP
nginx mod PSGI
Yaroslav Korshak
 
RTF
RegistryModClass
John Zamoider
 
Monitoring with Syslog and EventMachine (RailswayConf 2012)
Wooga
 
Boot strap.groovy
Vijay Shukla
 
A Gentle Introduction to Event Loops
deepfountainconsulting
 
Caching and invalidating with managed store
irfan1008
 
Anyevent
Marian Marinov
 
Puppet Camp Ghent 2013
Server Density
 
わかった気になるgitit-0.8
Kiwamu Okabe
 
clara-rules
Ikuru Kanuma
 
Javascript Continues Integration in Jenkins with AngularJS
Ladislav Prskavec
 
livedoor blogのsorryサーバの話 #study2study
SATOSHI TAGOMORI
 
Perl: Coro asynchronous
Shmuel Fomberg
 
Offline Application Cache
Jonathan Stark
 
Study2study#4 nginx conf_1_24
Naoya Nakazawa
 
Assurer - a pluggable server testing/monitoring framework
Gosuke Miyashita
 
톰캣 #04-환경설정
GyuSeok Lee
 
Time tested php with libtimemachine
Nick Galbreath
 
SambaStatus a "Do it yourself" module for NethServer
NethServer
 
Debugging in Clojure: Finding Light in the Darkness using Emacs and Cursive
Ahmad Ragab
 
nginx mod PSGI
Yaroslav Korshak
 
RegistryModClass
John Zamoider
 
Ad

Recently uploaded (20)

PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Doc9.....................................
SofiaCollazos
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Ad

ActionHeroJS Talk

  • 3. Estructura del Proyecto . ├── actions ├── bin ├── config ├── initializers ├── locales ├── log ├── node_modules ├── package.json ├── pids ├── public ├── README.md ├── servers ├── tasks └── test Las entidades principales como acciones, inicializadores o tareas se pueden generar usando el comando de actionhero npm run actionhero generate action -- --name=myFirstAction
  • 6. 'use strict' // npm run actionhero generate action -- --name=myFirstAction exports.action = { name: 'myFirstAction', description: 'an actionhero action', blockedConnectionTypes: [], outputExample: {}, matchExtensionMimeType: false, version: 1.0, toDocument: true, middleware: [], inputs: {}, run: function (api, data, next) { let error = null // your logic here return next(error) } } Acciones data = { connection: connection, action: 'randomNumber', toProcess: true, toRender: true, messageCount: 123, params: { action: 'randomNumber', apiVersion: 1 }, actionStartTime: 123, response: {}, }
  • 8. 'use strict' // npm run actionhero generate task -- // --name=myFirstTask --queue=default --frequency=0 exports.task = { name: 'myFirstTask', description: 'an actionhero task', frequency: 0, queue: 'default', middleware: [], plugins: [], run: function (api, params, next) { // your logic here // let error = new Error('something has gone wrong') // let resultLogMessage = {taskResult: 'ok'} // next(error, resultLogMessage) return next() } } Tareas
  • 9. 'use strict' // npm run actionhero generate initializer -- --name=myFirstInitializer module.exports = { loadPriority: 1000, startPriority: 1000, stopPriority: 1000, initialize: function (api, next) { api.myFirstInitializer = {} return next() }, start: function (api, next) { return next() }, stop: function (api, next) { return next() } } Inicializadores
  • 10. Action Cluster ● Cache ○ Get/Set ○ Listas ○ Bloqueos ● RPC ● Conexiones ● Pub/Sub api.connections.apply('abc123', 'set', ['auth', true], function(error, connectionDetails){ // do stuff });