code: protected void process(final Job job, final String curQueue) {
          boolean success = false;
          try {
              this.processingJob.set(true);
              if (threadNameChangingEnabled) {
                  renameThread("Processing " + curQueue + " since " + System.currentTimeMillis());
              }
              this.listenerDelegate.fireEvent(JOB_PROCESS, this, curQueue, job, null, null, null);
              PoolUtils.doWorkInPool(this.jedisPool, new PoolWork<Jedis, Void>() {
                  /**
                   * {@inheritDoc}
                   */
                  @Override
                  public Void doWork(final Jedis jedis) throws IOException {
                      jedis.set(key(WORKER, name), statusMsg(curQueue, job));
                      return null;
                  }
              });
              final Object instance = this.jobFactory.materializeJob(job);
              final Object result = execute(job, curQueue, instance);
              success(job, instance, result, curQueue);
              success = true;
          } catch (Throwable thrwbl) {
              failure(thrwbl, job, curQueue);
          } finally {
              final boolean skipReque = success;
              PoolUtils.doWorkInPoolNicely(this.jedisPool, new PoolWork<Jedis, Void>() {
                  /**
                   * {@inheritDoc}
                   */
                  @Override
                  public Void doWork(final Jedis jedis) {
                      removeInFlight(jedis, curQueue, skipReque);
                      jedis.del(key(WORKER, name));
                      return null;
                  }
              });
              this.processingJob.set(false);
          }
      }
docs: Materializes and executes the given job.
  
  @param job the Job to process
  @param curQueue the queue the payload came from