Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

get dbname from date and dbname , According to the monthly

Project description


适合场景是 数据库因为量大,根据日期切分成不同的库,该模块会根据你提供的时间段,调度到不同的数据库,可扩展不同的IP地址调度......

当时是为了实现ES库的中心调度,加了层tornado的api,为不同client提供不同的策略。实现的方法还是有些粗糙,有时间在进一步的改进一下... ...

.. image::
:height: 240px
:width: 300 px

Install from Pypi

pip install Control_DB_date

Basic Example
from datetime import datetime
from datetime import timedelta
import time

class Match_db_date(object):
Match = Match_db_date()
import json
print json.dumps(Match.to_match('2014-01-11','2014-08-22'))
def getMonthDays(self, year, month ):
day = 31
while day:
time.strptime( '%s-%s-%d'%( year, month, day ), '%Y-%m-%d' )
return day
day -= 1

def fit_date_format(self,year,month):
if month<10:
str_db = "buzz_v1_%s0%s"%(year,month)
str_db = "buzz_v1_%s%s"%(year,month)
return str_db

def to_match(self,start,end):
dc = {}
opt_start_time = datetime.strptime(start,"%Y-%m-%d")
opt_end_time = datetime.strptime(end,"%Y-%m-%d")
count_month = opt_end_time.month - opt_start_time.month
if count_month == 0:
str_db = "buzz_v1_%s"%opt_start_time.strftime('%Y%m')
dc[str_db] = [start,end]
return dc

for i in range(0,count_month+1):
if i == 0:
year = opt_start_time.year
month = opt_start_time.month
dc[self.fit_date_format(year,month)] = [start,"%s-%s-%s"%(year,month,self.getMonthDays(year,month))]

elif i == count_month:
year = opt_end_time.year
month = opt_end_time.month
day = opt_end_time.month
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),end]

year = opt_start_time.year
month = opt_start_time.month+i
if month<=12:
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),"%s-%s-%s"%(year,month,self.getMonthDays(year,month) )]
year = month / 12 + year
month = month % 12
dc[self.fit_date_format(year,month)] = ["%s-%s-01"%(year,month),"%s-%s-%s"%(year,month,getMonthDays(year,month))]

return dc

How to use it
from Control_DB_date import *
Match = Match_db_date()

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for Control_DB_date, version 3.0.0
Filename, size File type Python version Upload date Hashes
Filename, size Control_DB_date-3.0.0.tar.gz (3.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page