我一直在研究这个问题,似乎无法找到答案.
R = (A, B, C, D, E)
Run Code Online (Sandbox Code Playgroud)
功能依赖是:
A => B
ED => A
BC => E
Run Code Online (Sandbox Code Playgroud)
然后它将候选键列为:
ACD, BCD, CDE
Run Code Online (Sandbox Code Playgroud)
这些候选密钥是如何从上述FD中获得的?
同样,在哪里R = (A, B, C, D):
功能依赖是:
D => B
AB => D
AB => C
C=> A
Run Code Online (Sandbox Code Playgroud)
然后它将候选键列为:
AB, BC, CD, AD
Run Code Online (Sandbox Code Playgroud)
同样,我的问题是我不确定候选密钥是如何从FD中派生出来的?
提前感谢你.
我正在尝试使用 supervisord 事件来监听PROCESS_STATE_STOPPED来自 Supervisor 管理的进程的事件。
我的事件侦听器 ( listener.py) 如下所示:
import sys
from supervisor.childutils import listener
def write_stdout(s):
sys.stdout.write(s)
sys.stdout.flush()
def write_stderr(s):
sys.stderr.write(s)
sys.stderr.flush()
def main():
while True:
headers, body = listener.wait(sys.stdin, sys.stdout)
body = dict([pair.split(":") for pair in body.split(" ")])
write_stderr("Headers: %r\n" % repr(headers))
write_stderr("Body: %r\n" % repr(body))
listener.ok(sys.stdout)
if headers["eventname"] == "PROCESS_STATE_STOPPED":
write_stderr("Process state stopped...\n")
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我对应的入口supervisord.conf如下:
[program:theprogramname]
command=/bin/cat ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; …Run Code Online (Sandbox Code Playgroud)