示例#1
0
def enqueue(id, text):
    if not in_queue(id):
        j = Job()
        j.status, j.tweet_id = -1, id
        db.session.add(j)
        db.session.commit()

        f = open(unknown_command_path, 'a')
        f.write('%s\n' % text.encode('utf-8'))
        f.close()

        return j
    else:
        return db.session.query(Job).filter(
                Job.status == -1, Job.tweet_id == id).one()
示例#2
0
def enqueue(action, tweet_id, username):
    summary = human2machine(action)
    if summary:
        action, action_type, obj, repeated = summary
        user = db.session.query(User).filter(User.name == username).one()
        job = Job()
        job.action = action
        job.obj = obj
        job.tweet_id = tweet_id
        job.type = action_type
        job.status = 0
        job.repeated = repeated
        job.added_time = datetime.utcnow()
        db.session.add(job)
        job.user = user
        logger.debug(user.name)
        db.session.commit()
        return job
    else:
        return None
示例#3
0
文件: __init__.py 项目: youenn98/ok
def enqueue_job(func,
                *args,
                description=None,
                course_id=None,
                user_id=None,
                timeout=300,
                result_kind='string',
                **kwargs):
    if not description:
        raise ValueError('Description required to start background job')
    if not course_id:
        raise ValueError('Course ID required to start background job')
    if not user_id:
        user_id = current_user.id
    job = Job(status='queued',
              course_id=course_id,
              user_id=user_id,
              name=func.__name__,
              description=description,
              result_kind=result_kind)
    db.session.add(job)
    db.session.commit()

    try:
        get_queue().enqueue_call(func=func,
                                 args=args,
                                 kwargs=kwargs,
                                 job_id=str(job.id),
                                 timeout=timeout)
    except redis.exceptions.ConnectionError as e:
        job.failed = True
        job.status = 'finished'
        job.log = 'Could not connect to Redis: ' + str(e)
        db.session.add(job)
        db.session.commit()

    return job
示例#4
0
def enqueue_job(func, *args,
                description=None, course_id=None, user_id=None, timeout=300,
                result_kind='string', **kwargs):
    if not description:
        raise ValueError('Description required to start background job')
    if not course_id:
        raise ValueError('Course ID required to start background job')
    if not user_id:
        user_id = current_user.id
    job = Job(
        status='queued',
        course_id=course_id,
        user_id=user_id,
        name=func.__name__,
        description=description,
        result_kind=result_kind
    )
    db.session.add(job)
    db.session.commit()

    try:
        get_queue().enqueue_call(
            func=func,
            args=args,
            kwargs=kwargs,
            job_id=str(job.id),
            timeout=timeout
        )
    except redis.exceptions.ConnectionError as e:
        job.failed = True
        job.status = 'finished'
        job.log = 'Could not connect to Redis: ' + str(e)
        db.session.add(job)
        db.session.commit()

    return job