本文整理汇总了Python中flexget.ipc.IPCServer.start方法的典型用法代码示例。如果您正苦于以下问题:Python IPCServer.start方法的具体用法?Python IPCServer.start怎么用?Python IPCServer.start使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类flexget.ipc.IPCServer
的用法示例。
在下文中一共展示了IPCServer.start方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Manager
# 需要导入模块: from flexget.ipc import IPCServer [as 别名]
# 或者: from flexget.ipc.IPCServer import start [as 别名]
class Manager(object):
"""Manager class for FlexGet
Fires events:
* manager.startup
After manager has been initialized. This is when application becomes ready to use, however no database lock is
present, so the database must not be modified on this event.
* manager.lock-acquired
The manager does not always require a lock on startup, if one is requested, this event will run when it has been
acquired successfully
* manager.config-loaded
When a valid configuration has been (re)loaded, this event is fired
* manager.upgrade
If any plugins have declared a newer schema version than exists in the database, this event will be fired to
allow plugins to upgrade their tables
* manager.shutdown
When the manager is exiting
* manager.execute.completed
If execution in current process was completed
* manager.daemon.started
* manager.daemon.completed
* manager.db_cleanup
"""
unit_test = False
options = None
def __init__(self, options):
"""
:param options: argparse parsed options object
"""
global manager
assert not manager, 'Only one instance of Manager should be created at a time!'
self.options = options
self.config_base = None
self.config_name = None
self.config_path = None
self.db_filename = None
self.engine = None
self.lockfile = None
self.database_uri = None
self.db_upgraded = False
self._has_lock = False
self.config = {}
self.scheduler = Scheduler(self)
self.ipc_server = IPCServer(self, options.ipc_port)
manager = self
self.initialize()
# cannot be imported at module level because of circular references
from flexget.utils.simple_persistence import SimplePersistence
self.persist = SimplePersistence('manager')
log.debug('sys.defaultencoding: %s' % sys.getdefaultencoding())
log.debug('sys.getfilesystemencoding: %s' % sys.getfilesystemencoding())
log.debug('os.path.supports_unicode_filenames: %s' % os.path.supports_unicode_filenames)
if db_schema.upgrade_required():
log.info('Database upgrade is required. Attempting now.')
# Make sure not to fire the lock-acquired event yet
# TODO: Detect if any database upgrading is needed and acquire the lock only in one place
with self.acquire_lock(event=False):
fire_event('manager.upgrade', self)
if manager.db_upgraded:
fire_event('manager.db_upgraded', self)
fire_event('manager.startup', self)
def __del__(self):
global manager
manager = None
def initialize(self):
"""Separated from __init__ so that unit tests can modify options before loading config."""
self.setup_yaml()
self.find_config(create=(self.options.cli_command == 'webui'))
self.init_sqlalchemy()
fire_event('manager.before_config_load', self)
self.load_config()
fire_event('manager.before_config_validate', self)
errors = self.validate_config()
if errors:
for error in errors:
log.critical("[%s] %s", error.json_pointer, error.message)
self.shutdown(finish_queue=False)
#.........这里部分代码省略.........
示例2: Manager
# 需要导入模块: from flexget.ipc import IPCServer [as 别名]
# 或者: from flexget.ipc.IPCServer import start [as 别名]
class Manager(object):
"""Manager class for FlexGet
Fires events:
* manager.initialize
The first time the manager is initialized, before config is loaded
* manager.before_config_load
Before the config file is loaded from disk
* manager.before_config_validate
When updating the config, before the validator is run on it
* manager.config_updated
After a configuration file has been loaded or changed (and validated) this event is fired
* manager.startup
After manager has been initialized. This is when application becomes ready to use, however no database lock is
present, so the database must not be modified on this event.
* manager.lock_acquired
The manager does not always require a lock on startup, if one is requested, this event will run when it has been
acquired successfully
* manager.upgrade
If any plugins have declared a newer schema version than exists in the database, this event will be fired to
allow plugins to upgrade their tables
* manager.shutdown_requested
When shutdown has been requested. Any plugins which might add to execution queue should stop when this is fired.
* manager.shutdown
When the manager is exiting
* manager.execute.completed
If execution in current process was completed
* manager.daemon.started
* manager.daemon.completed
* manager.db_cleanup
"""
unit_test = False
options = None
def __init__(self, args):
"""
:param args: CLI args
"""
global manager
if not self.unit_test:
assert not manager, 'Only one instance of Manager should be created at a time!'
elif manager:
log.info('last manager was not torn down correctly')
if args is None:
# Decode all arguments to unicode before parsing
args = unicode_argv()[1:]
self.args = args
self.config_base = None
self.config_name = None
self.config_path = None
self.db_filename = None
self.engine = None
self.lockfile = None
self.database_uri = None
self.db_upgraded = False
self._has_lock = False
self.is_daemon = False
self.ipc_server = None
self.task_queue = None
self.persist = None
self.initialized = False
self.config = {}
if '--help' in args or '-h' in args:
# TODO: This is a bit hacky, but we can't call parse on real arguments when --help is used because it will
# cause a system exit before plugins are loaded and print incomplete help. This will get us a default
# options object and we'll parse the real args later, or send them to daemon. #2807
self.options, extra = CoreArgumentParser().parse_known_args(['execute'])
else:
try:
self.options, extra = CoreArgumentParser().parse_known_args(args)
except ParserError:
try:
# If a non-built-in command was used, we need to parse with a parser that doesn't define the subparsers
self.options, extra = manager_parser.parse_known_args(args)
except ParserError as e:
#.........这里部分代码省略.........
示例3: Manager
# 需要导入模块: from flexget.ipc import IPCServer [as 别名]
# 或者: from flexget.ipc.IPCServer import start [as 别名]
class Manager(object):
"""Manager class for FlexGet
Fires events:
* manager.initialize
The first time the manager is initialized, before config is loaded
* manager.before_config_load
Before the config file is loaded from disk
* manager.before_config_validate
When updating the config, before the validator is run on it
* manager.config_updated
After a configuration file has been loaded or changed (and validated) this event is fired
* manager.startup
After manager has been initialized. This is when application becomes ready to use, however no database lock is
present, so the database must not be modified on this event.
* manager.lock_acquired
The manager does not always require a lock on startup, if one is requested, this event will run when it has been
acquired successfully
* manager.upgrade
If any plugins have declared a newer schema version than exists in the database, this event will be fired to
allow plugins to upgrade their tables
* manager.shutdown
When the manager is exiting
* manager.execute.completed
If execution in current process was completed
* manager.daemon.started
* manager.daemon.completed
* manager.db_cleanup
"""
unit_test = False
options = None
def __init__(self, options):
"""
:param options: argparse parsed options object
"""
global manager
assert not manager, 'Only one instance of Manager should be created at a time!'
self.options = options
self.config_base = None
self.config_name = None
self.config_path = None
self.db_filename = None
self.engine = None
self.lockfile = None
self.database_uri = None
self.db_upgraded = False
self._has_lock = False
self.is_daemon = False
self.config = {}
self.ipc_server = IPCServer(self, options.ipc_port)
self.task_queue = TaskQueue()
manager = self
self.initialize()
# cannot be imported at module level because of circular references
from flexget.utils.simple_persistence import SimplePersistence
self.persist = SimplePersistence('manager')
log.debug('sys.defaultencoding: %s' % sys.getdefaultencoding())
log.debug('sys.getfilesystemencoding: %s' % sys.getfilesystemencoding())
log.debug('os.path.supports_unicode_filenames: %s' % os.path.supports_unicode_filenames)
if db_schema.upgrade_required():
log.info('Database upgrade is required. Attempting now.')
# Make sure not to fire the lock-acquired event yet
# TODO: Detect if any database upgrading is needed and acquire the lock only in one place
with self.acquire_lock(event=False):
fire_event('manager.upgrade', self)
if manager.db_upgraded:
fire_event('manager.db_upgraded', self)
fire_event('manager.startup', self)
def __del__(self):
global manager
manager = None
#.........这里部分代码省略.........