code: def start(self):
          
          oplog = self.connection.local['oplog.rs']
  
          if self.ts is None:
              cursor = oplog.find().sort('$natural', -1)
              obj = cursor[0]
              if obj:
                  self.ts = obj['ts']
              else:
                  # In case no oplogs are present.
                  self.ts = None
  
          if self.ts:
              logging.info('Watching oplogs with timestamp > %s' % self.ts)
          else:
              logging.info('Watching all oplogs')
  
          while self.running:
              query = { 'ts': {'$gt': self.ts} }
  
              try:
                  logging.debug('Tailing over %r...' % query)
                  cursor = oplog.find(query, tailable=True)
                  # OplogReplay flag greatly improves scanning for ts performance.
                  cursor.add_option(pymongo.cursor._QUERY_OPTIONS['oplog_replay'])
  
                  while self.running:
                      for op in cursor:
                          self.process_op(op['ns'], op)
                      time.sleep(self.poll_time)
                      if not cursor.alive:
                          break
              except AutoReconnect, e:
                  logging.warning(e)
                  time.sleep(self.poll_time)
              except OperationFailure, e:
                  logging.exception(e)
                  time.sleep(self.poll_time)
docs: Starts the OplogWatcher.