Пример #1
0
def ensure_zeo_is_running(event):
    """We start zeo after the application has performed the basic initialization
    because we cannot import opennode.oms.zodb.db until all grokkers are run in the
    correct order.

    """

    if get_config().get('db', 'storage_type') != 'zeo':
        return

    log.msg("Ensuring ZEO is running", system='db')

    # prevent zeo starting during unit tests etc
    global _daemon_started
    if not _daemon_started:
        return

    from opennode.oms.zodb.db import get_db_dir

    db_dir = get_db_dir()

    from zc.lockfile import LockFile, LockError
    try:
        with closing(LockFile(os.path.join(db_dir, 'data.fs.lock'))):
            log.msg("Starting ZEO server", system='db')
        run_zeo(db_dir)
    except LockError:
        log.msg("ZEO is already running", system='db')
Пример #2
0
def lock_instance():
    try:
        lock = LockFile('file_syncer.lock')
    except LockError:
        print('Can not run multiple instance of this script. Try it later! :)')
        exit()
    yield
    lock.close()
Пример #3
0
    def process_conversion_queue(self):
        """process the queue.
        """
        try:
            lock = LockFile(LOCKFILE_NAME)
        except LockError:
            return "`process_conversion_queue` is locked by another process (%r)." % (
                LOCKFILE_NAME)

        try:
            return self._process_conversion_queue()
        finally:
            lock.close()
Пример #4
0
    def process_conversion_queue(self):
        """process the queue.
        """
        try:
            lock = LockFile(LOCKFILE_NAME)
        except LockError:
            return '`process_conversion_queue` is locked by another ' + \
                   'process ({0}).'.format(LOCKFILE_NAME)

        try:
            return self._process_conversion_queue()
        finally:
            lock.close()
Пример #5
0
    def process_conversion_queue(self):
        """process the queue.
        """
        if HAS_PLONE_PROTECT:
            # Disabling CSRF protection
            alsoProvides(self.request, IDisableCSRFProtection)

        try:
            lock = LockFile(LOCKFILE_NAME)
        except LockError:
            return '`process_conversion_queue` is locked by another ' + \
                   'process ({0}).'.format(LOCKFILE_NAME)

        try:
            return self._process_conversion_queue()
        finally:
            lock.close()
Пример #6
0
Файл: fps.py Проект: sdss/jaeger
    async def start_can(self):
        """Starts the JaegerCAN interface."""

        use_lock = config["fps"]["use_lock"]

        if use_lock and self.pid_lock is None:
            try:
                if not os.path.exists(os.path.dirname(LOCK_FILE)):
                    os.makedirs(os.path.dirname(LOCK_FILE))
                self.pid_lock = LockFile(LOCK_FILE)
            except Exception:
                raise JaegerError(
                    f"Failed creating lock file {LOCK_FILE}. "
                    "Probably another instance is running. "
                    "If that is not the case, remove the lock file and retry.")

        if isinstance(self.can, JaegerCAN):
            await self.can.start()
            return

        self.can = await JaegerCAN.create(self.can, fps=self)
        return True
Пример #7
0
    QtGui.QGuiApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)

    MiscUtils.configure_logging()
    log_queue = Manager().Queue()
    logger_thread = threading.Thread(target=MiscUtils.logger_thread_exec,
                                     args=(log_queue, ))
    logger_thread.start()

    app = QtWidgets.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon(MiscUtils.get_app_icon_path()))
    app.setApplicationDisplayName(
        "Batch Media Compressor")  # TODO test + add org / ver
    app.setQuitOnLastWindowClosed(False)

    try:
        lock = LockFile(MiscUtils.get_lock_file_path())
        tray_icon = TrayIcon(log_queue)
        tray_icon.show()
        return_code = app.exec_()
        tray_icon.cleanup()
        lock.close()
    except LockError:
        error_msg = "Cannot acquire lock on file {}.\n\nAnother instance of the application is probably running.".format(
            MiscUtils.get_lock_file_path())
        logging.fatal(error_msg)
        QtWidgets.QMessageBox.critical(None, "Fatal Error", error_msg,
                                       QtWidgets.QMessageBox.Ok)
        return_code = -1

    logging.info("Application is being shutdown")
    log_queue.put(None)