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)
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