Exemplo n.º 1
0
    def handle(self, *args, **options):
        start_period = options['period'][0]
        current_period = date.today().strftime("%Y%m")

        DataSyncTracker.update_periods(current_period, start_period)

        one_day_ago = timezone.now() - timedelta(days=1)
        trackers = DataSyncTracker.objects.filter(last_parsed__lte=one_day_ago) \
            .filter(Q(status=DataSyncTrackerStatus.INIT_DOWNLOAD) | Q(status=DataSyncTrackerStatus.DOWNLOADED))
        data_sets = DataSet.objects.all()

        for tracker in trackers:
            try:
                for data_set in data_sets:
                    try:
                        parser = DataSetParser(data_set, tracker.period)
                        parser.parse()
                    except Exception, e:
                        print e.message

                tracker.last_parsed = timezone.now()
                tracker.status = DataSyncTrackerStatus.PARSED
                tracker.save()

            except Exception, e:
                print e.message
Exemplo n.º 2
0
    def handle(self, *args, **options):
        start_period = options['period'][0]
        current_period = date.today().strftime("%Y%m")

        DataSyncTracker.update_periods(current_period, start_period)

        one_day_ago = timezone.now() - timedelta(days=1)
        trackers = DataSyncTracker.objects.filter(last_downloaded__lte=one_day_ago) \
            .filter(Q(status=DataSyncTrackerStatus.UNKNOWN) | Q(status=DataSyncTrackerStatus.PARSED)|
                    Q(status=DataSyncTrackerStatus.INIT_PARSE))
        data_sets = DataSet.objects.all()

        for tracker in trackers:
            for data_set in data_sets:
                downloader = DataSetDownloader(data_set, tracker.period, self.ROOT_ORG_UNIT, tracker.status)
                downloader.download()

            tracker.last_downloaded = timezone.now()
            if tracker.status is DataSyncTrackerStatus.UNKNOWN:
                tracker.status = DataSyncTrackerStatus.INIT_DOWNLOAD
            else:
                tracker.status = DataSyncTrackerStatus.DOWNLOADED
            tracker.save()
 def create_old_tracker(self, period, last_downloaded_date):
     first = DataSyncTracker()
     first.period = period
     first.last_downloaded = last_downloaded_date
     first.save()
     return first