@Override
    public List<WorkflowModel> getWorkflowsByType(
            String workflowName, Long startTime, Long endTime) {
        Preconditions.checkNotNull(workflowName, "workflowName cannot be null");
        Preconditions.checkNotNull(startTime, "startTime cannot be null");
        Preconditions.checkNotNull(endTime, "endTime cannot be null");

        List<WorkflowModel> workflows = new LinkedList<>();

        // Get all date strings between start and end
        List<String> dateStrs = dateStrBetweenDates(startTime, endTime);
        dateStrs.forEach(
                dateStr -> {
                    String key = nsKey(WORKFLOW_DEF_TO_WORKFLOWS, workflowName, dateStr);
                    jedisProxy
                            .smembers(key)
                            .forEach(
                                    workflowId -> {
                                        try {
                                            WorkflowModel workflow = getWorkflow(workflowId);
                                            if (workflow.getCreateTime() >= startTime
                                                    && workflow.getCreateTime() <= endTime) {
                                                workflows.add(workflow);
                                            }
                                        } catch (Exception e) {
                                            LOGGER.error(
                                                    "Failed to get workflow: {}", workflowId, e);
                                        }
                                    });
                });

        return workflows;
    }
@param workflowName name of the workflow
@param version the workflow version
@return list of workflows that are in RUNNING state
redis-persistence/src/main/java/com/netflix/conductor/redis/dao/RedisExecutionDAO.java