dever 5 years ago
parent
commit
01f91aac43
2 changed files with 15 additions and 3 deletions
  1. 9 0
      demeter/core.py
  2. 6 3
      demeter/service.py

+ 9 - 0
demeter/core.py

@@ -26,6 +26,7 @@ class Demeter(object):
 	route = []
 	logger = False
 	dog = False
+	syncData = {}
 
 	def __new__(self, *args, **kwargs):
 		sys.exit()
@@ -440,6 +441,14 @@ class Demeter(object):
 		pool = redis.ConnectionPool(host=config['host'], password=config['password'], port=int(config['port']))
 		return redis.Redis(connection_pool=pool)
 
+	def sync(self, table, id):
+		if 'sync' in Demeter.config:
+			config = Demeter.config['sync']['table'].split(',')
+			service = Demeter.config['sync']['service'].split(',')
+			if table in config and table not in self.syncData:
+				Demeter.service(service[0], service[1]).rsync(table, id)
+				self.syncData[table] = True
+
 class Log(object):
 	@classmethod
 	def init(self, name, output = False):

+ 6 - 3
demeter/service.py

@@ -42,19 +42,22 @@ class Service(object):
 			if cdate == True and 'cdate' not in data:
 				data['cdate'] = 'time'
 			model.update(data)
-			return id
 		else:
 			for key, value in data.items():
 				method = 'assign'
 				if 'date' in key:
 					method = 'time'
 				self.assign(model, key, value, method)
-			return model.insert()
+			id = model.insert()
+		Demeter.sync(name, id)
+		return id
 
 	def delete(self, name, id, state = False):
 		model = self.model(name)
 		model.id = id
-		return model.update(state=state)
+		state = model.update(state=state)
+		Demeter.sync(name, id)
+		return state
 
 	def rDelete(self, name, id):
 		model = self.model(name)