module.exports = function() {
  var scheduler = {
    domain: require('domain').create(),

    initialize: function() {
      this.domain.on("error", function(error) {
        console.error(error.stack);
      });
    },

    schedule: function(callback, millis) {
      if (!millis){
        console.error ("No interval defined");
       return;
      }
      var errorHandlingCallBack = this.domain.bind(callback);
      setInterval(errorHandlingCallBack, millis);
      errorHandlingCallBack();
    }
  };
  scheduler.initialize();
  return scheduler;
};

@@ -348,16 +348,39 @@
       %7D%0A
+      var thiz = this;%0A
       va
@@ -446,48 +446,120 @@
  set
-Interval(errorHandlingCallBack, millis);
+Timeout(function()%7B%0A        errorHandlingCallBack();%0A        thiz.schedule(callback, millis);%0A      %7D, millis);%0A
 %0A   

Use setTimeout to avoid job overlaping