Ejemplo n.º 1
0
          setTimeout(function() {
            //console.log('getting jobs');
            var tx = new Transaction(db);
            tx.on('error', cb);
            tx.begin();

            Jobs.eventEmitter.emit('maybeServiceJob');
            jobsModel.nextToProcess(tx, gotResult);

            function gotResult(err, job) {
              if (err) return cb(err);

              if (!job) {
                return tx.commit(function() {
                  Jobs.eventEmitter.emit('drain');
                  cb();
                });
              }

              return serviceJob(tx, job, userJobIterator, serviceJobHandler);
            }

            function serviceJobHandler(err) {
              if (err) {
                tx.rollback();
              } else {
                tx.commit();
                Jobs.eventEmitter.emit('processCommitted');
              }
              cb(err);
            }
          }, pollInterval);
Ejemplo n.º 2
0
 function connected(err, _db, releaseClient) {
   if(err) return done(err);
   db = _db;
   doneWithRelease = function(err) {
     releaseClient();
     done(err);
   };
   tx = new Transaction(db);
   tx.on('error', doneWithRelease);
   tx.begin();
   jobsModel.obtainLock(tx, jobId, gotResult);
   Jobs.eventEmitter.emit('lockSought');
 }
Ejemplo n.º 3
0
  exports.connect(function (err, connection, done) {
    if (err) {
      return callback(err);
    }

    var tnx = new Transaction(connection);

    tnx.begin(function (err) {
      if (err) {
        done();
        return callback(err);
      }

      callback(null, tnx, done);
    });
  });
    getAvailableTickets(sessionId).then(function (availableSeats) {
        var ticketsNotAvailable = seats.filter(function (seat) {
            return availableSeats.indexOf(seat) == -1;
        }).length;

        if (ticketsNotAvailable > 0) {
            res.send('Tickets not available!');

        } else {
            tx.begin();
            persistOrder(tx).then(function(orderId){
                persistSeats(tx, seats, orderId, sessionId).then(function(){
                    tx.commit(function(){
                        client.end();
                        res.send('OK');
                    });
                });
            });
        }
    });