進行中のプロセスを起動する必要があるOpenERPのモジュールを作成しています。
OpenERPは連続ループで実行されます。ボタンをクリックしたときにプロセスを起動する必要があり、OpenERPの実行を中断せずにプロセスを実行し続ける必要があります。
それを単純化するために、私はこのコードを持っています:
#!/usr/bin/python
import multiprocessing
import time
def f(name):
while True:
try:
print 'hello', name
time.sleep(1)
except KeyboardInterrupt:
return
if __name__ == "__main__":
count = 0
while True:
count += 1
print "Pass %d" % count
pool = multiprocessing.Pool(1)
result = pool.apply_async(f, args=['bob'])
try:
result.get()
except KeyboardInterrupt:
#pass
print 'Interrupted'
time.sleep(1)
実行すると、一度印刷されてから、が押されるまでPass 1
無限のシリーズが印刷されます。次に、以下に示すように、が取得されます。hello bob
CTRL+C
Pass 2
Pass 1
hello bob
hello bob
hello bob
^CInterrupted
Pass 2
hello bob
hello bob
hello bob
hello bob
と並行してパスを増やしていきたいhello bob
です。
それ、どうやったら出来るの?