예제 #1
0
class Remote(object):
	def __init__(self):
		try:
			sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
			sock.connect(QUEUE_SOCKET)
			self._runner = _RemoteRunner(sock)
			self._socket = sock
		except:
			from django_queue.runner import DjangoRunner
			self._runner = DjangoRunner()
			self._socket = None
			
	def __del__(self):
		if self._is_connected():
			del self._runner
			self._socket.close()
		
	def _is_connected(self):
		return self._socket is not None
		
	def __getattr__(self, name, type=None):
		return getattr(self._runner, name)
	
	def do_for_model(self, object, method, *args, **kwargs):
		c = ContentType.objects.get_for_model(object)
		self._runner.do_for_model(c.app_label, c.model, object.pk, method, args, kwargs)

	def do_for_models(self, model, method, filter = {}, exclude = {}, args = (), kwargs = {}):
		c = ContentType.objects.get_for_model(model)
		self._runner.do_for_models(c.app_label, c.model, method, filter, exclude, args, kwargs)
예제 #2
0
	def __init__(self):
		try:
			sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
			sock.connect(QUEUE_SOCKET)
			self._runner = _RemoteRunner(sock)
			self._socket = sock
		except:
			from django_queue.runner import DjangoRunner
			self._runner = DjangoRunner()
			self._socket = None