Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2014 04:41:24

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Кроссплатформенная блокировка повторного запуска.

В Linux используем такую конструкцию, мне кажется, что решение кроссплатформенное, хотя я не проверял

    def handle(self, *args, **options):
        from lockfile import LockFile
        import tempfile
        import os
        lock = LockFile(os.path.join(tempfile.gettempdir(), '%s_command' % self.__class.__name__))
        if not lock.is_locked():
            lock.acquire()
            try:
                self.action()
            except Exception, e:
                print 'Error in action!'
            lock.release()
        else:
            print 'Another copy already runs'



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version