本文整理汇总了Python中ichnaea.models.WifiShard.shards方法的典型用法代码示例。如果您正苦于以下问题:Python WifiShard.shards方法的具体用法?Python WifiShard.shards怎么用?Python WifiShard.shards使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ichnaea.models.WifiShard
的用法示例。
在下文中一共展示了WifiShard.shards方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: configure_data
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def configure_data(redis_client):
"""
Configure fixed set of data queues.
"""
data_queues = {
'update_cell': DataQueue('update_cell', redis_client,
queue_key='update_cell'), # BBB
'update_cellarea': DataQueue('update_cellarea', redis_client,
queue_key='update_cellarea'),
'update_cellarea_ocid': DataQueue('update_cellarea_ocid', redis_client,
queue_key='update_cellarea_ocid'),
'update_score': DataQueue('update_score', redis_client,
queue_key='update_score'),
}
for shard_id in DataMap.shards().keys():
name = 'update_datamap_' + shard_id
data_queues[name] = DataQueue(name, redis_client, queue_key=name)
for shard_id in CellShard.shards().keys():
name = 'update_cell_' + shard_id
data_queues[name] = DataQueue(
name, redis_client, queue_key=name)
for shard_id in WifiShard.shards().keys():
name = 'update_wifi_' + shard_id
data_queues[name] = DataQueue(
name, redis_client, queue_key=name)
return data_queues
示例2: _update_all
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def _update_all(self):
schedule_export_reports.delay().get()
for shard_id in CellShard.shards().keys():
update_cell.delay(shard_id=shard_id).get()
for shard_id in WifiShard.shards().keys():
update_wifi.delay(shard_id=shard_id).get()
示例3: __call__
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def __call__(self):
cells = (self.session.query(CellArea.region,
CellArea.radio,
func.sum(CellArea.num_cells))
.filter(CellArea.region.isnot(None))
.group_by(CellArea.region, CellArea.radio)).all()
default = {'gsm': 0, 'wcdma': 0, 'lte': 0, 'wifi': 0}
stats = {}
for region, radio, num in cells:
if region not in stats:
stats[region] = default.copy()
stats[region][radio.name] = int(num)
for shard in WifiShard.shards().values():
wifis = (self.session.query(shard.region, func.count())
.filter(shard.region.isnot(None))
.group_by(shard.region)).all()
for region, num in wifis:
if region not in stats:
stats[region] = default.copy()
stats[region]['wifi'] += int(num)
if not stats:
return
region_stats = dict(self.session.query(RegionStat.region,
RegionStat).all())
for region, values in stats.items():
if region in region_stats:
region_stats[region].gsm = values['gsm']
region_stats[region].wcdma = values['wcdma']
region_stats[region].lte = values['lte']
region_stats[region].wifi = values['wifi']
else:
self.session.add(RegionStat(
region=region,
gsm=values['gsm'],
wcdma=values['wcdma'],
lte=values['lte'],
wifi=values['wifi'],
))
obsolete_regions = list(set(region_stats.keys()) - set(stats.keys()))
if obsolete_regions:
(self.session.query(RegionStat)
.filter(RegionStat.region.in_(obsolete_regions))
).delete(synchronize_session=False)
示例4: test_position_invalid
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def test_position_invalid(self):
self.add_reports(1, cell_factor=0, wifi_factor=1,
wifi_key='000000123456', lat=-90.1)
self.add_reports(1, cell_factor=0, wifi_factor=1,
wifi_key='000000234567')
self._update_all()
shard = WifiShard.shards()['0']
self.assertEqual(self.session.query(shard).count(), 1)
self.check_stats(counter=[
('data.report.upload', 1, 2, ['key:test']),
('data.report.drop', 1, 1, ['reason:malformed', 'key:test']),
('data.observation.insert', 1, 1, ['type:wifi']),
('data.observation.upload', 1, 1, ['type:wifi', 'key:test']),
])
示例5: test_position_invalid
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def test_position_invalid(self, celery, session, stats):
self.add_reports(celery, 1, cell_factor=0, wifi_factor=1,
wifi_key='000000123456', lat=-90.1)
self.add_reports(celery, 1, cell_factor=0, wifi_factor=1,
wifi_key='000000234567')
self._update_all(session)
shard = WifiShard.shards()['0']
assert session.query(shard).count() == 1
stats.check(counter=[
('data.report.upload', 1, 2, ['key:test']),
('data.report.drop', 1, 1, ['key:test']),
('data.observation.insert', 1, 1, ['type:wifi']),
('data.observation.upload', 1, 1, ['type:wifi', 'key:test']),
])
示例6: _update_all
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def _update_all(self, session, datamap_only=False):
ExportConfigFactory(name='internal', batch=0, schema='internal')
session.flush()
update_incoming.delay().get()
if datamap_only:
return
for shard_id in BlueShard.shards().keys():
update_blue.delay(shard_id=shard_id).get()
for shard_id in CellShard.shards().keys():
update_cell.delay(shard_id=shard_id).get()
for shard_id in WifiShard.shards().keys():
update_wifi.delay(shard_id=shard_id).get()
示例7: configure_data
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def configure_data(redis_client):
"""
Configure fixed set of data queues.
"""
data_queues = {
# update_incoming needs to be the exact same as in webapp.config
'update_incoming': DataQueue('update_incoming', redis_client,
batch=100, compress=True),
}
for key in ('update_cellarea', 'update_cellarea_ocid'):
data_queues[key] = DataQueue(key, redis_client, batch=100, json=False)
for shard_id in BlueShard.shards().keys():
key = 'update_blue_' + shard_id
data_queues[key] = DataQueue(key, redis_client, batch=500)
for shard_id in DataMap.shards().keys():
key = 'update_datamap_' + shard_id
data_queues[key] = DataQueue(key, redis_client, batch=500, json=False)
for shard_id in CellShard.shards().keys():
key = 'update_cell_' + shard_id
data_queues[key] = DataQueue(key, redis_client, batch=500)
for shard_id in WifiShard.shards().keys():
key = 'update_wifi_' + shard_id
data_queues[key] = DataQueue(key, redis_client, batch=500)
return data_queues
示例8: celerybeat_schedule
# 需要导入模块: from ichnaea.models import WifiShard [as 别名]
# 或者: from ichnaea.models.WifiShard import shards [as 别名]
def celerybeat_schedule(app_config):
"""Return the celery beat schedule as a dictionary."""
sections = app_config.sections()
schedule = {
# Monitoring
'monitor-queue-size': {
'task': 'ichnaea.data.tasks.monitor_queue_size',
'schedule': timedelta(seconds=60),
'options': {'expires': 57},
},
'monitor-api-users': {
'task': 'ichnaea.data.tasks.monitor_api_users',
'schedule': timedelta(seconds=600),
'options': {'expires': 570},
},
'monitor-api-key-limits': {
'task': 'ichnaea.data.tasks.monitor_api_key_limits',
'schedule': timedelta(seconds=600),
'options': {'expires': 570},
},
# Statistics
'update-statcounter': {
'task': 'ichnaea.data.tasks.update_statcounter',
'args': (1, ),
'schedule': crontab(minute=3),
'options': {'expires': 2700},
},
'update-statregion': {
'task': 'ichnaea.data.tasks.update_statregion',
'schedule': timedelta(seconds=3600 * 6),
'options': {'expires': 3600 * 5},
},
# Data Pipeline
'schedule-export-reports': {
'task': 'ichnaea.data.tasks.schedule_export_reports',
'schedule': timedelta(seconds=8),
'options': {'expires': 15},
},
'update-cellarea': {
'task': 'ichnaea.data.tasks.update_cellarea',
'schedule': timedelta(seconds=8),
'args': (100, ),
'options': {'expires': 15},
},
'update-cellarea-ocid': {
'task': 'ichnaea.data.tasks.update_cellarea_ocid',
'schedule': timedelta(seconds=9),
'args': (100, ),
'options': {'expires': 15},
},
'update-score': {
'task': 'ichnaea.data.tasks.update_score',
'args': (250, ),
'schedule': timedelta(seconds=9),
'options': {'expires': 10},
},
}
for shard_id in CellShard.shards().keys():
schedule.update({
'update-cell-' + shard_id: {
'task': 'ichnaea.data.tasks.update_cell',
'schedule': timedelta(seconds=7),
'args': (500, shard_id),
'options': {'expires': 10},
}
})
for shard_id in DataMap.shards().keys():
schedule.update({
'update-datamap-' + shard_id: {
'task': 'ichnaea.data.tasks.update_datamap',
'args': (500, shard_id),
'schedule': timedelta(seconds=14),
'options': {'expires': 20},
},
})
for shard_id in WifiShard.shards().keys():
schedule.update({
'update-wifi-' + shard_id: {
'task': 'ichnaea.data.tasks.update_wifi',
'schedule': timedelta(seconds=6),
'args': (500, shard_id),
'options': {'expires': 10},
}
})
if 'assets' in sections and app_config.get('assets', 'bucket', None):
#.........这里部分代码省略.........