本文整理汇总了Python中pyflag.FlagFramework.post_event方法的典型用法代码示例。如果您正苦于以下问题:Python FlagFramework.post_event方法的具体用法?Python FlagFramework.post_event怎么用?Python FlagFramework.post_event使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyflag.FlagFramework
的用法示例。
在下文中一共展示了FlagFramework.post_event方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: start_workers
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
def start_workers():
print "%s: starting workers" % os.getpid()
global job_pipe, keepalive, write_keepalive
children = []
## These pipes control the worker. If the master exits, the pipes
## will be closed which will notify the worker immediately. It
## will then exit.
if not keepalive:
keepalive, write_keepalive = os.pipe()
## Start up as many children as needed
for i in range(config.WORKERS):
pid = os.fork()
if pid:
children.append(pid)
else:
os.close(write_keepalive)
## Initialise the worker
worker_run(keepalive)
sys.exit(0)
## The process which called this function is a master
FlagFramework.post_event("startup")
## The master is responsible for ensuring its child is running -
## if the child quits, we restart it.
signal.signal(signal.SIGCHLD, handler)
示例2: execute
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
def execute(self):
try:
dbh = DB.DBO()
except:
dbh = DB.DBO('mysql')
dbh.execute("create database `%s`" % config.FLAGDB)
dbh = DB.DBO()
FlagFramework.post_event("init_default_db", None)
yield "Done"
示例3: worker_run
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
def worker_run(keepalive=None):
""" The main loop of the worker.
We never exit from this function.
We use the keepalive to check that our parent is still alive. If
it is not (i.e. the other end of the pipe returns failed reads),
we quit.
"""
FlagFramework.post_event("worker_startup")
my_pid = os.getpid()
## Open the pipes
try:
os.mkfifo(config.FIFO)
except OSError,e:
pass
示例4: handler
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
def handler(signal, frame):
try:
pid, status = os.waitpid(-1, 0)
except:
return
print "Child %s Died - starting" % pid
global keepalive, write_keepalive
if not keepalive:
keepalive, write_keepalive = os.pipe()
pid = os.fork()
if not pid:
os.close(write_keepalive)
## child
FlagFramework.post_event("worker_startup")
worker_run(keepalive)
sys.exit(0)
示例5: run
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
def run(self, case, *args):
## Expire any caches we have relating to this case:
pyflaglog.log(pyflaglog.INFO, "Resetting case %s in worker" % case)
FlagFramework.post_event('reset', case)
示例6: assert
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
dbh.execute("select * from meta where property='flag_db'")
for row in dbh:
pyflaglog.log(pyflaglog.INFO, "Deleting case %s due to an upgrade" % row['value'])
FlagFramework.delete_case(row['value'])
except DB.DBError,e:
pass
## Initialise the default database: We post an initialise
## event to allow plugins to contribute
try:
dbh = DB.DBO()
except:
dbh = DB.DBO('mysql')
dbh.execute("drop database if exists `%s`" % config.FLAGDB)
dbh.execute("create database `%s`" % config.FLAGDB)
dbh = DB.DBO()
FlagFramework.post_event('init_default_db', dbh.case)
try:
version = dbh.get_meta("schema_version")
assert(int(version) == config.SCHEMA_VERSION)
except:
result.heading("Failed")
result.para("Unable to create database properly. Try to create it manually from %s/db.setup" % config.DATADIR)
return
result.heading("Success")
result.para("Attempt to create initial database succeeded. Pyflag will start in a few seconds.")
result.refresh(5,query.__class__())
示例7: open
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
try:
doc = test_class.__doc__
except: pass
if not doc:
doc = test_class
print "---------------------------------------"
print "Running tests in %s (%s)" % (doc, test_registry.filename( \
test_registry.get_name(test_class)))
print "---------------------------------------"
suite = unittest.makeSuite(test_class)
result = unittest.TextTestRunner(verbosity=2).run(suite)
## Preform a collection:
gc.collect()
## Close off the volume so we can easily see what happened
FlagFramework.post_event("exit", None)
print "Garbage is %s" % (gc.garbage,)
## Only pause for errors
if config.pause and result.errors:
raw_input("Pause")
## Only write logs for tests which work perfectly.
if config.log and not result.errors:
fd = open(config.log,'a')
fd.write(test_class.__name__+"\n")
fd.close()
示例8: parameters
# 需要导入模块: from pyflag import FlagFramework [as 别名]
# 或者: from pyflag.FlagFramework import post_event [as 别名]
atexit.register(readline.write_history_file, histfile)
readline.set_completer(completer)
readline.set_completer_delims(' \t\n/=+\'"')
except NameError: pass
atexit.register(FlagFramework.post_event, 'exit', config.FLAGDB)
env=environment()
parser=command_parse(env)
print "Welcome to the Flag shell. Type help for help"
## Create a worker thread:
## Farm.start_workers()
## The process which called this function is a master
FlagFramework.post_event("startup")
if config.command_file != None:
asker=Asker()
fd=open(config.command_file)
file = fd.read()
#Initialise variable cache from parameters (if they are provided)
if config.params != None:
params = config.params.split(",")
for keypair in params:
keyvalue = keypair.split(":")
asker.cache[keyvalue[0]] = keyvalue[1]
# Ask the user to fill in variables in the file
file=file % asker