Beispiel #1
0
def cron_add(request, template):
    if request.method == 'POST':
        form = CronForm(request.POST, request.FILES)
        if form.is_valid():
            form.save(request.user)
            messages.success(request, u'添加推送微博任务成功')
            return HttpResponseRedirect(reverse('cron_add'))
    else:
        s_date = datetime.datetime.now() + datetime.timedelta(minutes=5)
        form = CronForm(initial={'send_date': s_date, 'hour': s_date.hour, 'minute': s_date.minute})

    recent_cron = WeiboContent.find({'user_id': request.user.id}, sort=[('created', -1)], limit=1)

    return render_to_response(template, {
        'form': form,
        'recent_cron': recent_cron,
    }, context_instance=RequestContext(request))
Beispiel #2
0
# coding: utf-8

import datetime

from apscheduler.scheduler import Scheduler

from autowb.account.models import User
from autowb.cron.models import WeiboContent


def default_callback(user, wb_cnt):
    return user.update_weibo(wb_cnt)

wb_cnt_unsent = WeiboContent.find({'sent': False, 'push_date': {'$gt': datetime.datetime.now()}})

# _scheduler = Scheduler(daemonic=False)
_scheduler = Scheduler()

# reload unsent job
for wb_cnt in wb_cnt_unsent:
    user = User.get_by_id(wb_cnt.user_id)
    _scheduler.add_date_job(default_callback, date=wb_cnt.push_date, name=str(wb_cnt.id), args=[user, wb_cnt, ])

_scheduler.start()


def get_scheduler():
    return _scheduler
Beispiel #3
0
def cron_sent_list(request, template):
    all_unsent = [x for x in WeiboContent.find({'user_id': request.user.id, 'sent': True}, sort=[('push_date', -1)])]
    obj = get_paginator(request, all_unsent, 10)
    return render_to_response(template, {
        'obj': obj,
    }, context_instance=RequestContext(request))