1- var Class = require ( 'classes' ) . Class
2- , path = require ( 'path' )
3- , async = require ( 'async' )
4- , debug = require ( 'debug' ) ( 'BackgroundTasks' ) ;
1+ var Class = require ( 'classes' ) . Class
2+ , path = require ( 'path' )
3+ , async = require ( 'async' )
4+ , injector = require ( 'injector' )
5+ , redis = require ( 'redis' )
6+ , debug = require ( 'debug' ) ( 'BackgroundTasks' ) ;
57
68var BackgroundTasks = Class . extend (
79{
@@ -24,14 +26,18 @@ var BackgroundTasks = Class.extend(
2426
2527 interval : null ,
2628
29+ isMaster : false ,
30+
2731 setup : function ( config , cluster ) {
2832 debug ( 'Setting up...' ) ;
2933
3034 try {
3135 process . on ( 'message' , this . proxy ( 'masterIpcMessage' ) ) ;
32- this . workers = { } ;
33- this . config = config [ 'clever-background-tasks' ] ;
34- this . cluster = cluster ;
36+
37+ this . workers = { } ;
38+ this . config = config [ 'clever-background-tasks' ] ;
39+ this . cluster = cluster ;
40+
3541 this . cluster . setupMaster ( {
3642 exec : path . resolve ( path . join ( __dirname , '..' , 'bin' , 'task.js' ) )
3743 } ) ;
@@ -115,9 +121,10 @@ var BackgroundTasks = Class.extend(
115121 } ,
116122
117123 runTaskOnWorker : function ( taskName , pid ) {
118- if ( this . workers [ taskName ] [ pid ] . task . interval !== false ) {
124+ var task = this . workers [ taskName ] [ pid ] . task ;
125+ if ( task . interval !== false && ( ! task . masterOnly || ! ! task . masterOnly && ! ! this . isMaster ) ) {
119126 debug ( 'Running ' + taskName + '...' ) ;
120-
127+
121128 var worker = this . workers [ taskName ] [ pid ] ;
122129 if ( ! ! worker . ready && ! worker . busy ) {
123130 worker . send ( { payload : null } ) ;
0 commit comments