Loads a task with the given ID from the given queue in the given
        state. An integer may be passed in the load_executions parameter
        to indicate how many executions should be loaded (starting from the
        latest). If the task doesn't exist, None is returned.

def from_id(self, tiger, queue, state, task_id, load_executions=0):
        """
        Loads a task with the given ID from the given queue in the given
        state. An integer may be passed in the load_executions parameter
        to indicate how many executions should be loaded (starting from the
        latest). If the task doesn't exist, None is returned.
        """
        if load_executions:
            pipeline = tiger.connection.pipeline()
            pipeline.get(tiger._key('task', task_id))
            pipeline.lrange(tiger._key('task', task_id, 'executions'), -load_executions, -1)
            serialized_data, serialized_executions = pipeline.execute()
        else:
            serialized_data = tiger.connection.get(tiger._key('task', task_id))
            serialized_executions = []
        # XXX: No timestamp for now
        if serialized_data:
            data = json.loads(serialized_data)
            executions = [json.loads(e) for e in serialized_executions if e]
            return Task(tiger, queue=queue, _data=data, _state=state,
                        _executions=executions)
        else:
            raise TaskNotFound('Task {} not found.'.format(
                task_id
            ))