def METHOD_NAME(self, filter, page, **options):
    """
    periodic task search instance
    """
    keyword = filter.keyword
    cache_keyword = "iam_search_instance_periodic_task_{}".format(keyword)
    project_id = filter.parent["id"] if filter.parent else None
    results = cache.get(cache_keyword)
    if results is None:
        queryset = (
            PeriodicTask.objects.select_related("task").filter(task__name__icontains=keyword).only("task__name")
        )
        if project_id:
            queryset = queryset.filter(project__id=project_id)
        results = [
            {"id": str(periodic_task.id), "display_name": periodic_task.name}
            for periodic_task in queryset[page.slice_from : page.slice_to]
        ]
        cache.set(cache_keyword, results, SEARCH_INSTANCE_CACHE_TIME)
    return ListResult(results=results, count=len(results))