def METHOD_NAME(self, issn, since, to=None):
    # set the default value for to, if not already set
    if to is None:
        to = dates.now_str()
    # get the dates into a datestamp
    sd = dates.parse(since)
    td = dates.parse(to)
    # calculate the ranges we're going to want to query by
    # We're going to query epmc one day at a time, so that we can effectively
    # iterate through in updated date order (though within each day, there will
    # be no ordering, there is little we can do about that except reduce the
    # request granularity further, which would massively increase the number
    # of requests)
    ranges = dates.day_ranges(sd, td)
    throttle = app.config.get("EPMC_HARVESTER_THROTTLE")
    last = None
    for fr, until in ranges:
        # throttle each day
        if last is not None and throttle is not None:
            diff = (dates.now() - last).total_seconds()
            self._write_to_logger("Last day request at {x}, {y}s ago; throttle {z}s".format(x=last, y=diff, z=throttle))
            if diff < throttle:
                waitfor = throttle - diff
                self._write_to_logger(
                        "Throttling EPMC requests for {x}s".format(x=waitfor))
                time.sleep(waitfor)
        # build the query for the oa articles in that issn for the specified day (note we don't use the range, as the granularity in EPMC means we'd double count
        # note that we use date_sort=True as a weak proxy for ordering by updated date (it actually orders by publication date, which may be partially the same as updated date)
        query = queries.oa_issn_updated(issn, fr, date_sort=True)
        epmc = client.EuropePMC(self.logger)
        for record in epmc.complex_search_iterator(query, throttle=throttle):   # also throttle paging requests
            article = self.crosswalk(record)
            yield article, fr
        last = dates.now()