예제 #1
0
def iter_repeat_records_by_repeater(domain, repeater_id, chunk_size=1000):
    from corehq.motech.repeaters.models import RepeatRecord
    kwargs = {
        'include_docs': True,
        'reduce': False,
        'descending': True,
    }
    kwargs.update(_get_startkey_endkey_all_records(domain, repeater_id))
    for doc in paginate_view(RepeatRecord.get_db(), 'repeaters/repeat_records',
                             chunk_size, **kwargs):
        yield RepeatRecord.wrap(doc['doc'])
예제 #2
0
def _get_couch_repeat_records_by_payload_id(domain, payload_id, include_docs):
    from .models import RepeatRecord
    results = RepeatRecord.get_db().view(
        'repeaters/repeat_records_by_payload_id',
        startkey=[domain, payload_id],
        endkey=[domain, payload_id],
        include_docs=include_docs,
        reduce=False,
        descending=True).all()
    if include_docs:
        return [RepeatRecord.wrap(result['doc']) for result in results]
    return [result['id'] for result in results]
예제 #3
0
def iterate_repeat_records(due_before, chunk_size=10000, database=None):
    from .models import RepeatRecord
    json_now = json_format_datetime(due_before)

    view_kwargs = {
        'reduce': False,
        'startkey': [None],
        'endkey': [None, json_now, {}],
        'include_docs': True
    }
    for doc in paginate_view(RepeatRecord.get_db(),
                             'repeaters/repeat_records_by_next_check',
                             chunk_size, **view_kwargs):
        yield RepeatRecord.wrap(doc['doc'])
예제 #4
0
def iterate_repeat_records_for_ids(doc_ids):
    from .models import RepeatRecord
    return (RepeatRecord.wrap(doc) for doc in iter_docs(RepeatRecord.get_db(), doc_ids))