update_external manage command
This commit is contained in:
parent
ed886cd2ac
commit
121d2e30dc
1 changed files with 37 additions and 0 deletions
37
pandora/item/management/commands/update_external.py
Normal file
37
pandora/item/management/commands/update_external.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# vi:si:et:sw=4:sts=4:ts=4
|
||||
from optparse import make_option
|
||||
|
||||
import os
|
||||
from os.path import join, dirname, basename, splitext, exists
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.conf import settings
|
||||
|
||||
import monkey_patch.models
|
||||
from ... import models
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
"""
|
||||
rebuild sort/search cache for all items.
|
||||
"""
|
||||
help = 'listen to rabbitmq and execute encoding tasks.'
|
||||
args = ''
|
||||
option_list = BaseCommand.option_list + (
|
||||
make_option('--all', action='store_true', dest='all',
|
||||
default=False, help='update all items, otherwise oldes N'),
|
||||
make_option('-n', '--items', action='store', dest='items', type=int,
|
||||
default=30, help='number of items ot update'),
|
||||
)
|
||||
|
||||
def handle(self, **options):
|
||||
offset = 0
|
||||
chunk = options['all'] and 100 or options['items']
|
||||
count = pos = models.Item.objects.count()
|
||||
while options['all'] and offset <= count or offset < options['items']:
|
||||
for i in models.Item.objects.all().order_by('modified')[offset:offset+chunk]:
|
||||
print pos, i.itemId, i.modified
|
||||
i.update_external()
|
||||
pos -= 1
|
||||
offset += chunk
|
Loading…
Reference in a new issue